JP2010522362A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2010522362A5 JP2010522362A5 JP2010501075A JP2010501075A JP2010522362A5 JP 2010522362 A5 JP2010522362 A5 JP 2010522362A5 JP 2010501075 A JP2010501075 A JP 2010501075A JP 2010501075 A JP2010501075 A JP 2010501075A JP 2010522362 A5 JP2010522362 A5 JP 2010522362A5
- Authority
- JP
- Japan
- Prior art keywords
- audio
- bandwidth
- speech
- reference waveform
- voices
- 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
Links
- 230000002194 synthesizing Effects 0.000 claims description 80
- 230000015572 biosynthetic process Effects 0.000 claims description 78
- 238000003786 synthesis reaction Methods 0.000 claims description 78
- 238000000034 method Methods 0.000 claims description 66
- 230000000875 corresponding Effects 0.000 claims description 49
- 238000009527 percussion Methods 0.000 claims description 10
- 239000010410 layer Substances 0.000 claims description 8
- 239000002365 multiple layer Substances 0.000 claims description 3
- 239000002131 composite material Substances 0.000 claims 2
- 230000000694 effects Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000001052 transient Effects 0.000 description 8
- 239000000203 mixture Substances 0.000 description 6
- 230000001360 synchronised Effects 0.000 description 3
- LHVJUPHCLWIPLZ-UHFFFAOYSA-N 3-acetyloxy-2-methylbenzoic acid Chemical compound CC(=O)OC1=CC=CC(C(O)=O)=C1C LHVJUPHCLWIPLZ-UHFFFAOYSA-N 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000051 modifying Effects 0.000 description 2
- 230000003287 optical Effects 0.000 description 2
- 230000029058 respiratory gaseous exchange Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 230000001702 transmitter Effects 0.000 description 1
Description
本特許出願は、2007年3月22日に出願され、発明の名称が「オーディオ・デバイスおける参照波形の取得のための帯域幅制御(BANDWIDTH CONTROL FOR RETRIEVAL OF REFERENCE WAVEFORMS IN AN AUDIO DEVICE)」であり、本願の譲受人に譲渡された仮特許出願第60/896,438号への優先権を主張する。上記仮特許出願は、参照によって本明細書に明示的に組み入れられる。
この開示は電子デバイスに関し、具体的には、オーディオを生成する電子デバイスに関する。
楽器ディジタル・インタフェース(MIDI)は、例えば、音楽、スピーチ、トーン、アラートなどのオーディオ・サウンドの創出、通信、及び/又は再生で使用されるフォーマットである。MIDIフォーマットの再生をサポートするデバイスは、様々な「音声」を創出するために使用されるオーディオ情報の集合を記憶する。各音声は、例えば、特定の楽器による音符のような1つ又は複数のサウンドに対応する。例えば、第1の音声はピアノによって演奏される中央ハ音(C)に対応し、第2の音声はトロンボーンによって演奏される中央ハ音(C)に対応し、第3の音声はトロンボーンによって演奏されるニ音シャープ(D#)に対応し、以下同様である。特定の楽器によって演奏される音符を複製するために、MIDI準拠デバイスは、様々なオーディオ特性、例えば、低周波発振器の振る舞い、ビブラートのような効果、及びサウンドの知覚に影響し得る多数の他のオーディオ特性を特定する音声情報の集合を含む。ほとんど全てのサウンドが定義され、MIDIファイルで伝達され、及びMIDIフォーマットをサポートするデバイスによって再生される。
MIDIフォーマットをサポートするデバイスは、このデバイスが音符の生成を開始すべきことを示す事象が生じると、この音符(又は他のサウンド)を生成する。同様に、デバイスは、このデバイスが音符の生成を停止すべきことを示す事象が生じると、この音符の生成を停止する。全体の楽曲は、或る音声がいつ開始及び停止すべきかを示す事象を指定することによって、MIDIフォーマットに従って符号化される。このようにして、楽曲は、MIDIフォーマットに従って、コンパクトなファイル・フォーマットで記憶及び伝送される。
MIDIは、多種多様なデバイスでサポートされる。例えば、無線電話機のような無線通信デバイスは、ダウンロード可能なサウンド、例えば、着信音又は他のオーディオ出力のためのMIDIファイルをサポートする。ディジタル音楽プレーヤ、例えば、アップル・コンピュータ社(Apple Computer, Inc)によって販売された「iPod」デバイス及びマイクロソフト社(Microsoft Corporation)によって販売された「Zune」デバイスもMIDIファイル・フォーマットをサポートする。MIDIフォーマットをサポートする他のデバイスは、様々な音楽シンセサイザ、無線移動デバイス、直接双方向通信デバイス(ウォーキー・トーキー(walkie-talkies)と呼ばれる場合もある)、ネットワーク電話、パーソナル・コンピュータ、デスクトップ及びラップトップ・コンピュータ、ワークステーション、衛星無線デバイス、インターコム・デバイス、無線放送デバイス、ハンドヘルド・ゲーム用デバイス、デバイス内に設けられた回路基板、情報キオスク、ビデオゲーム・コンソール、様々な子供用コンピュータ化玩具、自動車、船、飛行機で使用されるオンボード・コンピュータ、及び多種多様な他のデバイスを含むことができる。
一般的に、この開示はオーディオ・ファイルを処理する技術を説明する。これらの技術は、楽器ディジタル・インタフェース(MIDI)フォーマットに準拠するオーディオ・ファイルの再生に特に有用である。もっとも、これらの技術は、他のオーディオ・フォーマット、技術、又は標準の場合にも有用である。本明細書で使用される場合、MIDIファイルという用語は、MIDIフォーマットに対応する少なくとも1つのオーディオ・トラックを含む任意のファイルを意味する。
具体的には、この開示の技術は、オーディオ処理・モジュールへ割り当てられた帯域幅の使用を制御するために使用される。例えば、様々なオーディオ合成パラメータを処理するために、オーディオ処理モジュールは、オーディオ・フレーム、例えば、MIDIフレーム内の音声についてオーディオ情報を生成するために使用される参照波形サンプルを取得する。幾つかの場合、メモリから参照波形を取得するために使用可能な帯域幅の量は制限される。オーディオ・ハードウェア・ユニットが参照波形を取得するために使用可能な帯域幅の量は、例えば、オーディオ処理モジュールの他のコンポーネントへ割り当てられた帯域幅の量に基づいて制限される。割り当てられた帯域幅の使用を管理するために、帯域幅制御モジュールは、オーディオ・フレームの全音声について参照波形を取得するために必要な帯域幅を推定し、帯域幅推定値が、割り当てられた帯域幅を超過するとき、本明細書で説明された技術に従って、生成されたオーディオ情報から削除する音声の1つ又は複数を選択する。
一態様において、方法は、オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定することと、帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する音声の1つ又は複数を選択することとを備える。
他の態様において、デバイスは、オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定する帯域幅推定モジュールと、帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する音声の1つ又は複数を選択する音声選択モジュールとを備える。
更なる態様において、デバイスは、オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形をメモリから取得するために必要な帯域幅を推定する手段と、帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する音声の1つ又は複数を選択する手段とを備える。
更に他の態様において、コンピュータ読み取り可能媒体は命令を備える。前記命令は、プログラム可能プロセッサに、オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定させ、帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する音声の1つ又は複数を選択させる。
他の態様において、デバイスは、ソフトウェアを実行してオーディオ・フレームを構文解析し、オーディオ・フレームに関連づけられた事象をスケジュールするプロセッサと、事象を処理して合成パラメータを生成するディジタル信号プロセッサ(DSP)、合成パラメータの少なくとも一部分に基づいてオーディオ情報を生成するハードウェア・ユニットと、メモリ・ユニットとを備える。DSPは、オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するためにハードウェア・ユニットに必要な帯域幅の量を推定し、帯域幅推定値がハードウェア・ユニットへ割り当てられた帯域幅の量を超過するとき、生成されたオーディオ情報から除去する音声の1つ又は複数を選択する。
他の態様において、回路は、オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定し、帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から除去する音声の1つ又は複数を選択するように構成される。
この開示の1つ又は複数の態様の詳細は、添付の図面及び以下の説明に記述される。他の特徴、目的、及び利点は、明細書及び図面、及び特許請求の範囲から明らかとなるであろう。
一般的に、この開示はオーディオ・ファイルを処理する技術を説明する。これらの技術は、楽器ディジタル・インタフェース(MIDI)フォーマットに準拠するオーディオ・ファイルの再生に特に有用である。もっとも、これらの技術は、他のオーディオ・フォーマット、技術、又は標準についても有用である。本明細書で使用される場合、MIDIファイルという用語は、MIDIフォーマットに対応する少なくとも1つのオーディオ・トラックを含むファイルを意味する。
具体的には、この開示の技術は、オーディオ処理モジュールへ割り当てられた帯域幅の使用を制御するために用いられる。例えば、様々なオーディオ合成パラメータを処理するために、オーディオ処理モジュールは、例えば、MIDIフレームのようなオーディオ・フレーム内の音声についてオーディオ情報を生成する際に使用するための参照波形サンプルを取得する。幾つかの場合、メモリから参照波形を取得するために使用可能な帯域幅の量は制限される。オーディオ・ハードウェア・ユニットが参照波形を取得するために使用可能な帯域幅の量は、例えば、オーディオ処理モジュールの他のコンポーネントへ割り当てられた帯域幅の量に基づいて制限される。割り当てられた帯域幅の使用を管理するために、帯域幅制御モジュールは、オーディオ・フレームの全音声について参照波形を取得するために必要な帯域幅を推定し、推定された帯域幅が割り当てられた帯域幅を超過するとき、本明細書で説明される技術に従って、生成されたオーディオ情報から削除する音声の1つ又は複数を選択する。このようにして、選択された音声は、人間の聴取者へのオーディオ出力から本質的に除かれる。
図1は、例示的なオーディオ・デバイス4を示すブロック図である。オーディオ・デバイス4は、MIDIファイル、例えば、少なくとも1つのMIDIトラックを含むファイルを処理することができるデバイスを備える。オーディオ・デバイス4の例としては、無線通信デバイス、例えば、無線電話機、ネットワーク電話、ディジタル音楽プレーヤ、音楽シンセサイザ、無線移動デバイス、直接双方向通信デバイス(ウォーキー・トーキーと呼ばれる場合もある)、パーソナル・コンピュータ、デスクトップ又はラップトップ・コンピュータ、ワークステーション、衛星無線デバイス、インターコム・デバイス、無線放送デバイス、ハンドヘルド・ゲーム用デバイス、デバイス内に設けられた回路基板、キオスク・デバイス、様々な子供用コンピュータ化玩具、ビデオゲーム・コンソール、自動車、船、又は飛行機で使用されるオンボード・コンピュータ、又は多種多様な他のデバイスが含まれる。加えて、オーディオ・デバイス4は、楽器、例えば、電子キーボード、ドラム・マシン、又は他の電子楽器である。
オーディオ・デバイス4は、MIDIファイルを記憶するオーディオ記憶ユニット6を含む。オーディオ記憶ユニット6は、他のタイプのデータを追加的に記憶してもよい。例えば、オーディオ・デバイス4が移動電話機である場合、オーディオ記憶ユニット6は、個人連絡先のリスト、写真、及び他のタイプのデータを備えるデータを記憶してもよい。オーディオ記憶ユニット6は、揮発性又は不揮発性メモリ又は記憶装置、例えば、ハードディスク・ドライブ、フラッシュ・メモリ・ユニット、コンパクト・ディスク、フロッピー(登録商標)ディスク、ディジタル万能ディスク、読み出し専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、又は他の情報記憶媒体を備える。もちろん、オーディオ記憶ユニット6は、ディジタル音楽プレーヤに関連づけられた記憶ユニット又は他のデバイスからの情報転送に関連づけられた一時記憶ユニットであってもよい。オーディオ記憶ユニット6は、データ・バス又は他の接続を経由してプロセッサ8へ接続された別個の揮発性メモリ・チップ又は不揮発性記憶デバイスであってもよい。
オーディオ・デバイス4は、プロセッサ8、ディジタル信号プロセッサ(DSP)12、及びオーディオ・ハードウェア・ユニット14を更に含む。これらは協動してMIDIファイルを処理し、MIDIファイルの内容に基づき、オーディオ情報、例えば、オーディオ・サンプルのディジタル波形を生成する。言い換えれば、プロセッサ8、DSP12、及びオーディオ・ハードウェア・ユニット14は協動してシンセサイザとして機能する。図1に示された例において、オーディオ・デバイス4は、プロセッサ8、DSP12、及びオーディオ・ハードウェア・ユニット14の間でMIDI処理タスクを分割するアーキテクチャを実現する。しかしながら、MIDI処理タスクのこのような分割は、本明細書で説明される帯域幅制御技術の実現には不必要である。従って、幾つかの実現において、プロセッサ8、DSP12、及びオーディオ・ハードウェア・ユニット14の処理タスクは単一のモジュールへ接続される。例えば、MIDIファイル処理に関連づけられたタスクは、DSP12及びオーディオ・ハードウェア・ユニット14の2つの異なるスレッドの間で委任される。即ち、(本明細書で説明されるような)汎用プロセッサ8に関連づけられたタスクは、マルチスレッドDSP、例えば、DSP12の第1のスレッドによって代替的に実行される。この場合、DSP12の第1のスレッドはスケジューリングを実行し、DSP12の第2のスレッドは合成パラメータを生成し、ハードウェア・ユニット14は合成パラメータに基づいてオーディオ・サンプルを生成する。DSP12は、他のタスク、例えば、本明細書で開示される帯域幅推定技術を行うために追加のスレッドを更に含む。
一態様において、プロセッサ8、DSP12、及びオーディオ・ハードウェア・ユニット14は、オーディオ・フレーム方式によってオーディオ・フレーム内のMIDIファイルを処理する。本明細書で使用されるように、「オーディオ・フレーム」という表現は、幾つかのオーディオ・サンプルを含む時間ブロックを意味する。一例として、オーディオ・フレームは、48kHzのサンプリング・レートで動作しているデバイスについて480サンプルを含む10ミリ秒(ms)区間に対応する。多くの事象は、1つの時間インスタンスに対応し、多くの音声又はサウンドは、MIDIフォーマットに従って1つの時間インスタンス内に含まれる。もちろん、任意のオーディオ・フレームへ委任される時間の量、並びにフレーム当たりのサンプルの数は、実施ごとに異なっている。
プロセッサ8は、オーディオ記憶ユニット6からデータを読み出し、オーディオ記憶ユニット6へデータを書き込む。更に、プロセッサ8は、メモリ・ユニット10からデータを読み出し、メモリ・ユニット10へデータを書き込む。例えば、プロセッサ8は、オーディオ記憶モジュール6からMIDIファイルを読み出し、メモリ・ユニット10へMIDIファイルを書き込む。各オーディオ・フレームについて、プロセッサ8は1つ又は複数のMIDIファイルを取得し、MIDIファイルを構文解析して、1つ又は複数のMIDI命令を抽出する。MIDIファイル内のMIDI命令は、特定のMIDI音声が開始又は停止することを命令する。他のMIDI命令は、アフタータッチ効果、呼吸制御効果、プログラム変更、ピッチ・ベンド効果、例えばパン・レフト又はパン・ライトなどの制御メッセージ、サステイン・ペダル効果、主音量制御、例えばタイミング・パラメータなどのシステム・メッセージ、例えば照明効果キューなどのMIDI制御メッセージ、及び/又は他のサウンド効果に関係する。
これらのMIDI命令に基づいて、プロセッサ8は、DSP12による処理のために、MIDIファイルに関連づけられたMIDI事象をスケジュールする。プロセッサ8は、MIDI事象のスケジューリングをDSP12によってアクセスされるようにメモリ・ユニット10へ提供し、これにより、DSP12はMIDI命令を処理することができる。あるいは、プロセッサ8は、時間同期方式でMIDI命令をDSP12へ直接送ることによって、スケジューリングを実行する。具体的には、プロセッサ8によるスケジューリングは、MIDI命令に関連づけられたタイミングの同期化を含み、MIDI命令はMIDIファイル内で指定されたタイミング・パラメータに基づいて識別される。
DSP12は、プロセッサ8によって創出されたスケジューリングに従ってMIDI命令を処理する。具体的には、DSP12は、MIDI命令内に指定された新しい音声を、開始する音声として割り当てるとともに、MIDI命令内に指定された音声を、停止する音声として除く。このようにして、DSP12は、現オーディオ・フレームの新しいMIDI音声を開始及び停止する合成パラメータを生成する。更に、DSP12は、MIDI命令に従って、オーディオ・フレーム内の音声の様々な音響特性、例えば、共鳴レベル、ピッチ、残響、及び音量を記述する他の合成パラメータを生成する。
幾つかの場合、メモリ・ユニット10から参照波形を取得するために使用可能な帯域幅の量は制限される。例えば、オーディオ・ハードウェア・ユニット14がメモリ・ユニット10にアクセスするために使用可能な帯域幅の量は、プロセッサ8及びDSP12へ割り当てられた帯域幅の量に応じる。ウェーブテーブル・ルックアップのためにフレーム毎に転送することができるデータ量が制限されるとき、ウェーブテーブル合成を使用してMIDI音声を管理するために、DSP12は帯域幅制御モジュール15を含む。帯域幅制御モジュール15は、この開示の帯域幅制御技術を実現する。具体的には、帯域幅制御モジュール15は、オーディオ・フレームの全音声について参照波形を取得するために必要な帯域幅の量を推定する。以下に詳細に説明するように、参照波形は、対応する音声のオーディオ情報、例えばサンプル、を生成するために使用される。この開示の技術に従って、帯域幅制御モジュール15は、帯域幅推定値がオーディオ・ハードウェア・ユニット14へ割り当てられた帯域幅の量を超過するとき、メモリ・ユニット10から参照波形を取得するために、削除する1つ又は複数の音声を選択する。帯域幅制御モジュール15は、参照波形を取得するための帯域幅推定値が、取得を目的としてオーディオ・ハードウェア・ユニット14へ割り当てられた帯域幅の量以下になるまで、削除する音声を選択し続ける。このようにして、帯域幅制御モジュール15は、推定された帯域幅が割り当てられた帯域幅以下になるまで、削除する音声を再帰的に選択する。あるいは、帯域幅制御モジュール15は、推定帯域幅と割り当てられた帯域幅との差を判定し、全帯域幅が推定帯域幅と割り当てられた帯域幅との差以上のである複数の音声を選択する。このようにして、帯域幅制御モジュール15は、再帰方式で音声を選択する代わりに、削除する複数音声を同時に選択してもよい。
一例として、「帯域幅」という用語は、単位時間当たりにオーディオ・ハードウェア・ユニット14へ転送することができるデータ量、例えば、秒当たりバイト数を意味する。帯域幅は、メモリ10とオーディオ・ハードウェア・ユニットとの間の伝送媒体によって定義され、及び場合によって、例えば、他のコンポーネントがメモリ10へアクセスするために伝送媒体を共有するかどうかなどの他の因子によって定義される。例えば、オーディオ・ハードウェア・ユニット14は、メモリ10への専用バスを有する。この場合、帯域幅は、このバス上を転送され得る秒当たりバイト数によって定義される。あるいは、オーディオ・ハードウェア・ユニット14は、メモリ10へアクセスするためにDSP12及び/又はプロセッサ8とバスを共有する。この場合、帯域幅は、共有バス上でオーディオ・ハードウェア・ユニット14へ現在割り当てられている秒当たりバイト数を意味する。共有バスが使用される場合、帯域幅は、共有バス上の情報転送を制御するバス・コントローラ又は他のコンポーネントによって決定される。更に、共有バスが使用される場合、オーディオ・ハードウェア・ユニット14へ割り当てられた帯域幅は、同じバスを使用する他のコンポーネントによって必要とされる帯域幅の量に依存して、異なる時間で変化する。いずれの場合にも、任意の所与の事例において帯域幅の固定量が与えられるならば、この開示の技術は、音声上への所望の制御を容易にし、所望のオーディオ経験を促進するやり方で、最も重要性の低い音声の可能な削除を容易にすることができる。
図1において、オーディオ・ハードウェア・ユニット14とメモリ・ユニット10との間の矢印は専用バスを表し、あるいは、メモリ・ユニット10とプロセッサ8との間、メモリ・ユニット10とDSP12との間、及びメモリ・ユニット10とオーディオ・ハードウェア・ユニット14との間の異なる矢印は、合わせて共有バスを表す。専用又は共有バスは、バス・コントローラ(図示しない)によって制御される。バス・コントローラは、所与の事例において、オーディオ・ハードウェア・ユニット14への帯域幅を決定する。
以下で詳細に説明するように、帯域幅制御モジュール15は、オーディオ・フレーム内の最も重要でない音声を選択するように試みる。オーディオ・フレーム内のMIDI音声の音の重要度レベルは、オーディオ・フレームの人間の聴取者によって知覚される全体のサウンドに対するこのMIDI音声の重要性に応じる。帯域幅制御モジュール15は、例えば、最小振幅を有する1つ又は複数の音声、最も長い時間アクティブ又はオンにされていた音声、又は最下位優先順位MIDIチャネルに関連づけられた音声を選択する。更に、帯域幅制御モジュール15は、削除する音声を選択するとき、音声に関連づけられた他の合成パラメータ、例えば、ADSRエンベロープの状態、音声に対応する楽器のタイプなどを分析する。ADSRは、「アタック・ディケイ・サステイン・リリース(attack decay sustain release)」の略である。上記の技術は個々に実現されてもよく、又はこのような技術の2つ以上又は技術全てが、帯域幅制御モジュール15において共に実現されてもよい。
DSP12は、選択されなかった音声のMIDI合成パラメータをメモリ・ユニット10内に記憶する。この場合、オーディオ・ハードウェア・ユニット14は、メモリ・ユニット10にアクセスして、合成パラメータを取得する。あるいは、DSP12は、選択されなかった音声の合成パラメータをオーディオ・ハードウェア・ユニット14へ直接提供して、例えば、オーディオ・ハードウェア・ユニット14内の1つ又は複数のレジスタを設定する。このため、オーディオ・ハードウェア・ユニット14は、選択された音声について合成パラメータを受け取らない。このため、削除されるように選択された音声は、オーディオ・フレームから本質的に除かれる。このようにして、DSP12は、オーディオ・ハードウェア・ユニット14の帯域幅要件を制御し、参照波形を取得するための帯域幅要件がオーディオ・ハードウェア・ユニット14の割り当てられた帯域幅を超過しないように保証する。
オーディオ・ハードウェア・ユニット14は、DSP12によって生成された合成パラメータを使用して、各オーディオ・フレームについて多数のオーディオ・サンプルを備えるディジタル波形を生成する。オーディオ・ハードウェア・ユニット14によって生成されたディジタル波形は、例えば、パルス符号変調(PCM)信号を備える。この信号は、一定の間隔でサンプルされたアナログ信号のディジタル表現である。個々のオーディオ・フレームについてディジタル波形を生成するために、オーディオ・ハードウェア・ユニット14は、オーディオ・フレーム内のMIDI音声の各々についてディジタル波形を生成する。MIDI音声についてディジタル波形を生成するため、オーディオ・ハードウェア・ユニット14は、メモリ・ユニット10から、MIDI音声に関連づけられた、多くの場合「ウェーブテーブル」と呼ばれる参照波形を取得する。オーディオ・ハードウェア・ユニット14は、合成パラメータに従って参照波形の1つ又は複数のパラメータ、例えば、ピッチ、振幅、又は他の音響特性を変動させ、MIDI音声についてディジタル波形を生成する。オーディオ・ハードウェア・ユニット14は、MIDI音声の各々について生成されたディジタル波形を合計し、オーディオ・フレームについてディジタル波形を計算する。オーディオ・ハードウェア・ユニット14による例示的なオーディオ生成の更なる詳細は、図2を参照して後述する。
オーディオ・フレームについてディジタル波形を生成した後、オーディオ・ハードウェア・ユニット14は、例えば、割り込み駆動型技術によって、生成されたディジタル波形をDSP12へ渡す。この場合、DSP12はディジタル波形上で後処理技術を行う。後処理は、フィルタリング、スケーリング、音量調節、又はサウンド出力を最終的に向上する多種多様なオーディオ後処理を含む。後処理に続いて、DSP12は、後処理されたディジタル波形をディジタル/アナログ変換器(DAC)16へ出力する。DAC16は、ディジタル波形をアナログ信号へ変換し、アナログ信号を駆動回路18へ出力する。駆動回路18は、信号を増幅し、1つ又は複数のスピーカ19A及び19Bを駆動して、可聴サウンドを創出する。オーディオ・デバイス4は、フィルタ、前置増幅器、増幅器、及びスピーカ19によって出力されるアナログ信号を準備する他のタイプのコンポーネントを含む1つ又は複数の追加のコンポーネント(図示しない)を含む。
幾つかの実現において、説明された技術は、MIDIファイルの処理の効率を改善するためにパイプライン方式にされる。具体的には、オーディオ・ハードウェア・ユニット14によってオーディオ・フレームN+2に対して行われる処理は、DSP12によってオーディオ・フレームN+1に対して行われる合成パラメータの生成、及びプロセッサ8によってオーディオ・フレームNに対して行われるスケジューリング動作と同時に行われる。このようなパイプライン技術は、効率を向上させ、場合によって、所与の段、例えば、DSPに関連づけられた段に必要な計算リソースを低減することができる。
プロセッサ8は、多種多様な汎用の単一チップ・マイクロプロセッサ又はマルチ・チップ・マイクロプロセッサを備える。プロセッサ8は、複数命令セット・コンピュータ(CISC)設計又は縮小命令セット・コンピュータ(RISC)設計を実現する。一般的に、プロセッサ8は、ソフトウェアを実行する中央処理ユニット(CPU)を備える。例としては、インテル社(Intel Corporation)、アップル・コンピュータ社(Apple Computer, Inc)、サン・マイクロシステムズ社(Sun Microsystems Inc.)、アドバンスド・マイクロ・デバイシズ社(Advanced Micro Devices (AMD) Inc.)、エーアールエム社(ARM Inc.)などの会社からの16ビット、32ビット、又は64ビットのマイクロプロセッサが含まれる。他の例としては、インターナショナル・ビジネス・マシンズ社(International Business Machines(IBM)Corporation)、レッドハット社(RedHat Inc.)などの会社からのUnix(登録商標)又はLinux(登録商標)ベースのマイクロプロセッサが含まれる。DSP12は、クゥアルコム社(Qualcomm Inc.)によって開発されたQDSP4 DSPを備える。オーディオ・ハードウェア・ユニット14は、オーディオ・デバイス4のハードウェア・コンポーネントとして実現されてもよい。例えば、オーディオ・ハードウェア・ユニット14は、オーディオ・デバイス4の回路基板へ埋め込まれたチップセットであってもよい。
帯域幅制御技術は、DSP12内で行われるものとして図1で説明されるが、帯域幅制御技術は、これに代えて、オーディオ・デバイス4の他のモジュール内で行われてもよい。例えば、オーディオ・ハードウェア・ユニット14が帯域幅制御技術を実施してもよい。この場合、オーディオ・ハードウェア・ユニット14は、フレームの全音声について合成パラメータを受け取り、メモリ・ユニット10から参照波形を取得するために必要な推定帯域幅が、オーディオ・ハードウェア・ユニット14へ割り当てられた帯域幅の量を超過するとき、削除する音声を選択する。更に、この開示のこれらの技術は、MIDIの文脈で説明されるが、技術は、オーディオ・サウンドの創出、通信、及び/又は再生に使用される他のフォーマットについてディジタル波形を合成する場合に適用可能である。
図1に示す様々なコンポーネントは、この開示の態様を解明する例示的目的のために示される。図1に示された特徴は、ハードウェア・コンポーネント又はソフトウェア・コンポーネントの任意の適切な組み合わせ、又はハードウェア・コンポーネントとソフトウェア・コンポーネントの組み合わせによって実現される。しかしながら、他のコンポーネントが幾つかの実現中に存在してもよい。例えば、オーディオ・デバイス4が無線電話機である場合、アンテナ、送信機、受信機、及び変調器/復調器(「モデム」)が含まれ、オーディオ・ファイルの無線通信を容易にする。更に、図示されたコンポーネントの幾つかは、他の実現の中に含まれなくてもよい。
図2は、オーディオ・デバイス内で使用される例示的なオーディオ・ハードウェア・ユニット20を示すブロック図である。オーディオ・ハードウェア・ユニット20は、オーディオ・デバイス4(図1)のオーディオ・ハードウェア・ユニット14を表す。図2で示される実現は単なる例示であり、他のハードウェア実現もこの開示の教示に一致して定義されうる。図2の例に示されるように、オーディオ・ハードウェア・ユニット20は、バス・インタフェース30を含み、データを送り及び受け取る。オーディオ・ハードウェア・ユニット20は、バス・インタフェース30を用いて、DSP12へデータを送り、DSP12からデータを受け取る。更に、オーディオ・ハードウェア・ユニット20は、メモリ・ユニット10からデータを取得する。このような動作を達成するために、バス・インタフェース30は、AMBA高性能バス(High-performance Bus)(AHB)マスタ・インタフェース、AHBスレーブ・インタフェース、及びメモリ・バス・インタフェースを含む。AMBAは、先進マイクロプロセッサ・バス・アーキテクチャ(advanced microprocessor bus architecture)の略である。あるいは、バス・インタフェース30は、AXIバス・インタフェース又は他のタイプのバス・インタフェースを含むことができる。AXIは、先進拡張可能インタフェース(advanced extensible interface)の略語である。
オーディオ・ハードウェア・ユニット20は、調整モジュール32を含む。調整モジュール32は、オーディオ・ハードウェア・ユニット20内のデータ・フローを調整する。さらに、調整モジュール32は、オーディオ・ハードウェア・ユニット20とDSP12又はメモリ・ユニット10との間のデータ・フローを調整する。調整モジュール32は、例えば、DSP12からのオーディオ・フレームの音声の合成パラメータの転送を調整する。上述したように、DSP12は、オーディオ・ハードウェア・ユニット20がオーディオ・フレームの全音声について参照波形を取得するために必要な帯域幅の量を推定し、帯域幅推定値が、メモリ・ユニット10から参照波形を取得するためにオーディオ・ハードウェア・ユニット20へ割り当てられた帯域幅の量を超過するとき、生成されたオーディオから削除する1つ又は複数の音声を選択する。この場合、オーディオ・ハードウェア・ユニット20は、選択されなかった音声のみについて合成パラメータを受け取り、これによって、選択された音声をオーディオ・フレームから本質的に取り除く。
しかしながら、他の態様において、この開示の帯域幅制御技術は、オーディオ・ハードウェア・ユニット20内で実現される。具体的には、オーディオ・ハードウェア・ユニット20は、オーディオ・フレームの全音声について合成パラメータを受け取り、生成されたオーディオ情報から削除する音声を選択して、割り当てられた帯域幅を満足させる。例えば、制御モジュール32は、オーディオ・ハードウェア・ユニット20がオーディオ・フレームの全音声について参照波形を取得するために必要な帯域幅の量を推定し、帯域幅推定値が、メモリ・ユニット10から参照波形を取得するためオーディオ・ハードウェア・ユニット20へ割り当てられた帯域幅の量を超過するとき、削除する1つ又は複数の音声を選択する。このために、調整モジュール32は帯域幅制御モジュール(図2では示されない)を含む。
オーディオ・ハードウェア・ユニット20がDSP12(図1)から命令を受け取ってオーディオ・フレームの合成を始めるとき、調整モジュール32はオーディオ・フレームの選択されなかった音声について合成パラメータを読み出す。オーディオ・ハードウェア・ユニット20は、合成パラメータを使用して、オーディオ・フレームの選択されなかった音声についてディジタル波形を生成する。選択された音声に関連づけられた合成パラメータは受け取られなかったので、オーディオ・ハードウェア・ユニット20は、これらの音声についてオーディオ情報を生成しない。言い換えれば、選択された音声はオーディオ・フレームから本質的に除かれる。合成パラメータは、所与のフレーム内の1つ又は複数のMIDI音声の様々な音響特性、例えば、共鳴レベル、ピッチ、残響、音量、及び/又は1つ又は複数の音声に影響し得る他の特性を記述する。オーディオ・ハードウェア・ユニット20は、DSP12からオーディオ・ハードウェア・ユニット20内のメモリ・モジュール42へ合成パラメータを直接ロードし、又はメモリ・ユニット10内の場所へのデータ・ポインタを経由してメモリ10から合成パラメータを取得する。具体的には、調整モジュール32の指令で、合成パラメータは、メモリ・ユニット10から、それぞれの処理要素34A又は34Nに関連づけられた音声パラメータ・セット(VPS)RAM46A又は46Nへロードされる。DSP12(図1)の指令で、プログラム命令は、メモリ10から、それぞれの処理要素34A又は34Nに関連づけられたプログラムRAMユニット44A又は44Nへロードされる。
調整モジュール32が合成パラメータのリストを読み出した後、調整モジュール32は、選択されなかった音声に関連づけられた複数の参照波形をメモリ10から取得する。例えば、調整モジュール32は、音声の各々についてサンプルを生成するために必要な参照波形を取得する。調整モジュール32は、取得された参照波形をWFO/LFOメモリ39内に記憶する。
プログラムRAMユニット44A又は44Bへロードされた命令は、関連づけられた処理要素34A又は34Nに命令して、VPS RAMユニット46A又は46N内の合成パラメータのリストに表示された音声の1つを合成させる。処理要素34の数はいかなる数でもよく、各処理要素は、1つ又は複数の算術論理ユニット(ALU)、又は数学演算を行うとともに、データを読み出し及び書き込むことのできる他のユニットを備える。簡明にするため、2つの処理要素34A及び34Nのみが示されるが、より多くの処理要素がハードウェア・ユニット20内に含まれてもよい。処理要素34は、相互に並列で音声を合成する。具体的には、複数の異なる処理要素34が並列で動作し、異なる音声に関連づけられた異なる合成パラメータを処理する。言い換えれば、処理要素の各々は、合成パラメータのリスト内に示された音声の1つを合成する。このようにして、オーディオ・ハードウェア・ユニット20内の複数の処理要素34は、加速され、場合によっては生成された音声の数を増加することができ、これによってオーディオ・サンプルの生成を改善する。
調整モジュール32が処理要素34の1つに命令して音声を合成させるとき、この処理要素は、合成パラメータに関連づけられた1つ又は複数の命令を実行する。ここでも、これらの命令は、プログラムRAMユニット44A又は44Nへロードされる。プログラムRAMユニット44A又は44Nへロードされた命令は、処理要素34のそれぞれの1つに音声合成を行わせる。例えば、処理要素34は、波形フェッチ・ユニット(WFU)36へ要求を送って、合成パラメータ内に指定されたMIDI音声について参照波形を取得する。処理要素34の各々はWFU36を使用する。2つ以上の処理要素34がWFU36の同時の使用を要求する場合、アービトレーション・スキームを用いて衝突を解決してすることができる。
処理要素34の1つからの要求に応答して、WFU36は、合成パラメータによって指定された参照波形を戻す。WFU36は、キャッシュ・メモリ48、WFU/LFUメモリ39、又はメモリ・ユニット10に記憶された参照波形を戻す。WFU36によって戻された参照波形は、要求を行った処理要素34へ提供される1つ又は複数のサンプルを含む。波は、例えば、波の1サイクルまでサンプル内で位相シフトされるので、補間を利用して位相シフトを補償するために、WFU36は2つのサンプルを戻す。更に、ステレオ信号は2つのステレオ・チャネルのために2つの別々の波を含むので、WFU36はチャネル毎に別々のサンプルを戻し、結果として、例えば、ステレオ出力のために最大4つの別々のサンプルを生じる。
WFU36が参照波形を処理要素34の1つへ戻した後、この処理要素は合成パラメータに基づいて追加のプログラム命令を実行する。具体的には、命令は、処理要素34の1つに、オーディオ・ハードウェア・ユニット20内の低周波発振器(LFO)38から非対称三角波形を要求させる。WFU36によって戻された参照波形を、LFO38によって戻された三角波形と乗算することによって、それぞれの処理要素34は、波形の様々な音響特性を操作し、所望のオーディオ効果を達成する。例えば、波形を三角波で乗算することは、所望の楽器に一層類似したサウンドの波形を生じる結果となる。
合成パラメータに基づいて実行される他の命令は、処理要素34のそれぞれの1つに波形を特定回数だけループさせ、波形の振幅を調節させ、残響を加えさせ、ビブラート効果を加えさせ、又は他の音響効果を行わせる。このようにして、処理要素34はMIDI音声のために1オーディオ・フレームだけ続くディジタル波形を計算することができる。最終的に、それぞれの処理要素34は終了命令を受ける。処理要素34の1つが終了命令を受けたとき、この処理要素は音声合成の終わりを調整モジュール32へシグナルする。計算された音声波形は、プログラム命令の実行中に、他の記憶命令の指令で、合計バッファ40へ提供される。これは、合計バッファ40に、この計算された音声波形を記憶させる。
合計バッファ40が、計算された波形を処理要素34の1つから受け取ったとき、合計バッファ40は、計算された波形をオーディオ・フレームの全体の波形に関連づけられた適切な時間インスタンスへ追加する。こうして、合計バッファ40は複数の処理要素34の出力を組み合わせる。例えば、合計バッファ40は最初に平坦波形(即ち、全てのディジタル・サンプルがゼロの波)を記憶する。合計バッファ40が処理要素34の1つから特定のMIDI音声に関連づけられた計算波形を受け取ったとき、合計バッファ40は、計算波形の各ディジタル・サンプルを、合計バッファ40内に記憶された波形のそれぞれのサンプルへ追加する。このようにして、合計バッファ40は複数のMIDI音声に関連づけられた計算波形を累積し、フル・オーディオ・フレームのために波形の全体のディジタル表現を記憶する。合計バッファ40は、所与のオーディオ・フレーム内の全体のオーディオ編成を表現するディジタル波形を創出するために、異なる処理要素34からの異なる生成音声に関連づけられた異なる時間インスタンスを本質的に合計する。
最終的に、調整モジュール32は、処理要素34が現オーディオ・フレームについて必要な全音声の合成を完了したこと、及び、これらの音声を合計バッファ40へ提供したことを判定する。この時点で、合計バッファ40は現オーディオ・フレームのために完成した波形を表示するディジタル・サンプルを含む。調整モジュール32がこの判定を行うと、調整モジュール32は割り込みをDSP12(図1)へ送る。割り込みに応答して、DSP12は合計バッファ40内の制御ユニット(図示しない)へ要求を送り、例えば、直接メモリ交換(DME)を経由して合計バッファ40の内容を受け取らせる。あるいは、DSP12もDMEを行うように予めプログラムされる。次いでDSP12は、アナログ領域へ変換するためディジタル波形をDAC16へ提供する前に、ディジタル波形上で後処理を行う。フレームN+2に関してオーディオ・ハードウェア・ユニット20によって行なわれる処理は、フレームN+1に関してDSP12によって行なわれる合成パラメータの生成、及びフレームNに関してプロセッサ8(図1)によって行われるスケジューリング動作と同時に生じる。
キャッシュ・メモリ48、WFU/LFOメモリ39、及びリンク・リスト・メモリ42も図2に示される。キャッシュ・メモリ48はWFU36によって使用され、迅速及び効率的な方法で基本波形をフェッチする。WFU/LFOメモリ39は調整モジュール32によって使用され、音声パラメータ・セットの音声パラメータ又は1つ又は複数の参照波形を記憶する。こうして、WFU/LFOメモリ39は、波形フェッチ・ユニット36及びLFO38の動作に専用されるメモリとして見ることができる。リンク・リスト・メモリ42は、DSP12によって生成された音声インディケータのリストを記憶するために使用されるメモリを備える。音声インディケータは、メモリ10内に記憶された1つ又は複数の合成パラメータへのポインタを備える。リスト内の各音声インディケータは、それぞれのMIDI音声の音声パラメータ・セットを記憶するメモリ場所を指定する。図2に示される様々なコンポーネント及びコンポーネント配列(メモリを含む)は単なる例示である。本明細書で説明される技術は、多様な他の配列を用いて実現され得る。
図3は、例示的な帯域幅制御モジュール48を示すブロック図である。帯域幅制御モジュール48は、オーディオ・デバイス4(図1)の帯域幅制御モジュール15を表す。図3に示されるように、帯域幅制御モジュール48は帯域幅推定モジュール50及び音声選択モジュール52を含む。モジュール50及び52は協動して、本明細書で説明される帯域幅制御技術を実現するように機能する。
具体的には、帯域幅推定モジュール50は、各オーディオ・フレームについて、この特定のフレームのMIDI音声の参照波形をメモリ・ユニット10から取得するためオーディオ・ハードウェア・ユニット14によって必要とされる帯域幅の量を推定する。上述したように、MIDI音声に関連づけられた参照波形の転送に使用可能な帯域幅の量は、オーディオ・フレームごとに変動する。例えば、メモリ・ユニット10内の参照波形を取得するために割り当てられた帯域幅の量は、オーディオ・デバイス4の他のコンポーネントへ割り当てられたメモリ帯域幅の量、例えば、プロセッサ8及びDSP12へ割り当てられた帯域幅に応じて変動する。更に、メモリ・ユニット10内の参照波形にアクセスするために割り当てられた帯域幅の量も、オーディオ・ハードウェア・ユニット14内の他のモジュールへ割り当てられたメモリ帯域幅に基づいて変動する。
帯域幅推定モジュール50は、例えば、オーディオ・ハードウェア・ユニット14がメモリ・ユニット10から取得する必要がある参照波形のサンプルの数に基づいて、現フレームについてオーディオ・ハードウェア・ユニット14の帯域幅要件を推定する。言い換えれば、帯域幅推定モジュール50は、フレーム・ベースでオーディオ・ハードウェア・ユニット14の帯域幅要件を推定する。出発点として、帯域幅推定モジュール50は、参照波形のサンプルの数に基づいて、オーディオ・ハードウェア・ユニット14の帯域幅要件を推定する。しかしながら、オーディオ・ハードウェア・ユニット14の帯域幅要件をより正確に推定するために、帯域幅推定モジュール50は、本明細書で説明される帯域幅推定技術の1つ又は複数を用いる。
第1の帯域幅推定技術において、帯域幅推定モジュール50は、オーディオ・フレームの音声の各々について再生位置を決定し、再生位置に基づいて帯域幅要件を推定する。ループ波形と呼ばれる参照波形の1つのタイプは、2つのセクション、即ち、過渡セクション及びループ・セクションへ分割される。オーディオ・デバイスは、過渡セクションを1回だけ再生し、次いで、音符が終わるまでループ・セクションを反復して再生する。再生位置とは、この特定のオーディオ・フレームに対応する波形に沿った位置を意味する。帯域幅推定モジュール50は、オーディオ・フレームの音声に関連づけられた再生位置が過渡セクション内にあるかループ・セクション内にあるかを判定し、再生位置がループ・セクション内に存在するとき、ループ参照波形のループ・セクションを取得することだけが必要であると判定する。こうして、帯域幅推定モジュール50は、参照波形を取得するために必要な帯域幅を、参照波形のループ・セクションのサンプルの数として推定する。しかしながら、再生位置が参照波形の過渡セクション内に存在するとき、帯域幅推定モジュール50は、オーディオ・ハードウェア・ユニット14が参照波形全体を取得する可能性があることを判定し、この判定を用いて、オーディオ・ハードウェア・ユニット14の帯域幅要件を推定する。1回限りのサウンドの場合、即ち、過渡部分及びループ部分へ区分されないサウンドの場合、帯域幅推定モジュール50は、オーディオ・ハードウェア・ユニット14が参照波形全体を取得しなければならないと判定する。
他の帯域幅推定技術において、帯域幅推定モジュール50は、参照波形の一部分のみを取得する必要があることを判定し、この判定を用いて、オーディオ・ハードウェア・ユニット14の帯域幅要件を推定する。例えば、帯域幅推定モジュール50は、オーディオ・フレームの始まりに関連づけられた波形サンプル・インデックスとオーディオ・フレームの終わりに関連づけられた波形サンプル・インデックスとの間の差を計算する。帯域幅推定モジュール50は、始まりと終わりの波形サンプル・インデックス間の差を、参照波形内のサンプルの数と比較する。始まりと終わりの波形サンプル・インデックス間の差が波形内のサンプルの数よりも小さい場合、帯域幅推定モジュール50は、オーディオ・ハードウェア・ユニット14が、フレームの始まりに関連づけられたサンプル・インデックス及びフレームの終わりに関連づけられたサンプル・インデックスからの参照波形部分だけを取得する必要があることを判定する。しかしながら、フレームの終わりに関連づけられた波形サンプル・インデックスが、ループされる波形のサンプルの総数よりも大きい場合、帯域幅推定モジュール50は、このフレームの間にローリング・オーバー(rolling over)が起こると判定する。ローリング・オーバーは、帯域幅推定モジュール50に波形のループ部分の始まりからインデックスを再計算させる。こうして、帯域幅推定モジュールは、波形全体又は波形の少なくともループ部分全体がオーディオ・ハードウェア・ユニット14へ転送することを判定する。
帯域幅推定モジュール50は、MIDI音声について参照波形を取得するために必要とされる推定帯域幅を、参照波形をメモリ・ユニット10から取得するために割り当てられた帯域幅の量と比較する。上述したように、参照波形を取得するために割り当てられた帯域幅の量は、フレームごとに変動する。オーディオ・ハードウェア・ユニット14の推定帯域幅要件が、割り当てられた帯域幅を超過すると判定すると、直ちに、音声選択モジュール52は、生成されたオーディオから削除する1つ又は複数のMIDI音声を選択する。音声選択モジュール52は、フレーム内の最小の知覚的関連を有する音声を選択するように試みる。音声選択モジュール52は、例えば、最小振幅エンベロープを有する音声、したがって最小知覚の可聴音声を選択する。代替的又は追加的に、音声選択モジュール52は、最も長い時間アクティブ又はオンにされていた音声、即ち、最も旧い音符を選択してもよい。例えば、音声選択モジュール52は、各音声に関連づけられて音声がアクティブであった連続フレームの数をカウントするフレーム・カウンタを分析し、最も連続的なフレームの間アクティブであった音声を選択する。幾つかのMIDI仕様、例えば、SP−MIDIにおいて、オーディオ・チャネルは優先順位値を割り当てられる。この場合、音声選択モジュール52は、最下位優先順位オーディオ・チャネルに関連づけられた音声を、生成されたオーディオ情報から削除する音声として選択する。
振幅、アクティブな長さ、又は音声に関連づけられた優先順位を分析することに加えて、音声選択モジュール52は音声に関連づけられた他の合成パラメータを分析して、選択を行ってもよい。一例として、音声選択モジュール52はADSRエンベロープの状態を分析し、アタック状態にない音声のみを選択する。典型的には、アタック状態にある音符は、他の状態にある音符よりも、知覚的に人間の聴取者へ可聴である。代わりに、音声選択モジュール52は、ディケイ状態、サステイン状態、又はリリース状態にある音声のみ
を選択する。他の例として、音声選択モジュール52は、音声の各々に関連づけられた楽器のタイプを分析し、知覚的に小さい関連を有する楽器を除去のために選択する。音声選択モジュール52は、例えば、打楽器に対応する音声の選択を回避するように試みる。これは、打楽器が、歌曲において、より知覚的に注目される傾向があるからである。
を選択する。他の例として、音声選択モジュール52は、音声の各々に関連づけられた楽器のタイプを分析し、知覚的に小さい関連を有する楽器を除去のために選択する。音声選択モジュール52は、例えば、打楽器に対応する音声の選択を回避するように試みる。これは、打楽器が、歌曲において、より知覚的に注目される傾向があるからである。
更に、音声選択モジュール52は、前に選択された音声に基づいて、削除する追加の音声を選択する。例えば、幾つかの音声は層状音符、即ち、複数の音声を含む音符に属する。音声選択モジュール52が層状音符に属する音声を最初に選択する場合、音声選択モジュール52は、生成されたオーディオ情報から削除するこの音符の他の音声を選択する。この理由は、層状音符の音声の1つを除去することは、いずれにしても異なるサウンド音符を生じる結果となるからである。
これまでの技術は個々に実現されてもよく、又はそのような技術の2つ以上、又はそのような技術の全てが、帯域幅制御モジュール48内でともに実現されてもよい。更に、上述したように、帯域幅制御モジュール48は、オーディオ・デバイス4(図1)のいずれかのモジュール内で実現されてもよい。一態様において、帯域幅制御モジュール48はDSP12(図1)内で実現される。この場合、オーディオ・ハードウェア・ユニット20(図1)は、選択されなかった音声についてのみ合成パラメータを受け取る。他の態様において、帯域幅制御モジュール48は、オーディオ・ハードウェア・ユニット14内で実現される。この場合、オーディオ・ハードウェア・ユニット14はフレームの全音声について合成パラメータを受け取り、メモリ・ユニット10から参照波形を取得するために必要な推定帯域幅が、オーディオ・ハードウェア・ユニット14へ割り当てられた帯域幅の量を超過するとき、削除する1つ又は複数の音声を選択する。
図3に示された様々なコンポーネントは、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組み合わせで実現されうる。幾つかのコンポーネントは、1つ又は複数のマイクロプロセッサ又はディジタル信号プロセッサ(DSP)、1つ又は複数の特定用途集積回路(ASIC)、1つ又は複数のフィールド・プログラマブル・ゲート・アレイ(FPGA)、又は他の同等の集積又は離散的論理回路によって実行されるプロセス又はモジュールとして実現される。異なる特徴をモジュールとして描写することは、帯域幅制御モジュール48の異なる機能的態様を強調することを意図するものであり、このようなモジュールが別々のハードウェア又はソフトウェア・コンポーネントによって実現されねばならないことを必ずしも暗示するものではない。むしろ、1つ又は複数のモジュールに関連づけられた機能性は、共通又は別々のハードウェア又はソフトウェア・コンポーネント内に統合されてもよい。したがって、この開示は、帯域幅制御モジュール48の例へ限定されるべきではない。
ソフトウェアで実現されるとき、この開示で説明されたシステム及びデバイスに帰せられる機能性は、コンピュータ読み取り可能媒体、例えば、メモリ(図示しない)内の命令として体現される。コンピュータ読み取り可能媒体は、例えば、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、不揮発性ランダム・アクセス・メモリ(NVRAM)、電気的に消去可能なプログラム可能読み出し専用メモリ(EEPROM)、フラッシュ・メモリ、磁気又は光学データ記憶媒体、又はその他を備える。命令は、この開示で説明された機能性の1つ又は複数の態様をサポートするように実行される。
図4は、この開示の帯域幅制御技術を実現する合成デバイス、例えば、図1のオーディオ・デバイス4の例示的動作を示すフロー図である。例示を目的として、合成デバイスの例示的動作は、DSP12の内部で行われるものとして説明される。しかしながら、上述したように、帯域幅制御技術は、代替としてオーディオ・デバイス4の他のモジュール内、例えば、オーディオ・ハードウェア・ユニット14内で行われてもよい。
初めに、DSP12は、オーディオ・フレームのMIDIファイルに関連づけられた1つ又は複数のMIDI命令を受け取る(60)。上述したように、DSP12は時間同期方式でプロセッサ8からMIDI命令を受け取る。あるいは、プロセッサ8はMIDI命令をローカル・メモリ10へ書き込んで、DSP12はメモリ10へアクセスして、処理のために命令を取得する。MIDI命令は、特定のMIDI音声が開始又は停止するように命令する。他のMIDI命令は、アフタータッチ効果、呼吸制御効果、プログラム変更、ピッチ・ベンド効果、例えばパン・レフト又はパン・ライトなどの制御メッセージ、サステイン・ペダル効果、主音量制御、例えばタイミング・パラメータなどのシステム・メッセージ、例えば照明効果キューなどのMIDI制御メッセージ、及び/又は他のサウンド効果に関係する。
DSP12は、プロセッサ8から受け取られたMIDI命令を処理する(62)。具体的には、DSP12は音声の開始又は停止を表示するMIDI命令に従って新しい音声を割り当て、リースを満了した音声を削除する。更に、DSP12はMIDI命令に従って各音符について合成パラメータを生成する。
DSP12は、メモリ・ユニット10から参照波形を取得するために割り当てられた帯域幅の量を決定する(64)。上述したように、MIDI音声に関連づけられた参照波形の転送に使用可能な帯域幅の量は、オーディオ・フレームごとに変動する。例えば、メモリ・ユニット10内の参照波形を取得するために割り当てられた帯域幅の量は、オーディオ・デバイス4の他のコンポーネントへ割り当てられたメモリ帯域幅の量、例えば、プロセッサ8及びDSP12へ割り当てられた帯域幅に応じて変動する。更に、メモリ・ユニット10内の参照波形にアクセスするために割り当てられた帯域幅の量は、オーディオ・ハードウェア・ユニット14内の他のモジュールへ割り当てられたメモリ帯域幅に基づいても変動する。
DSP12は、フレームのMIDI音声について参照波形をメモリ・ユニット10から取得するためオーディオ・ハードウェア・ユニット14によって必要とされる帯域幅の量を推定する(64)。帯域幅推定モジュール50は、例えば、オーディオ・ハードウェア・ユニット14がメモリ・ユニット10から取得する必要がある参照波形のサンプルの数に基づいて、現フレームのためにオーディオ・ハードウェア・ユニット14の帯域幅要件を推定する。開始点として、帯域幅推定モジュール50は、参照波形内に含まれるサンプルの数に基づいて、オーディオ・ハードウェア・ユニット14の帯域幅要件を推定する。
しかしながら、オーディオ・ハードウェア・ユニット14の帯域幅要件をより正確に推定するために、帯域幅推定モジュール50は、本明細書で説明される帯域幅推定技術の1つ又は複数を用いてもよい。例えば、ループ参照波形において、帯域幅推定モジュール50は、オーディオ・フレームの音声に関連づけられた再生位置が、対応する参照波形の過渡セクション内にあるかループ・セクション内にあるかを判定し、再生位置がループ・セクション内に存在するとき、ループ参照波形のループ・セクションの取得だけが必要であると判定する。しかしながら、再生位置がループ参照波形の過渡セクション内に存在するとき、帯域幅推定モジュール50は、オーディオ・ハードウェア・ユニット14が、参照波形全体の取得を要求してもよいと判定し、この判定を用いて、オーディオ・ハードウェア・ユニット14の帯域幅要件を推定する。更に、1回限りのサウンド、即ち、過渡部分及びループ部分へ区分されないサウンドの場合、帯域幅推定モジュール50は、オーディオ・ハードウェア・ユニット14が参照波形全体の取得を要求してもよいと判定する。
他の例として、オーディオ・ハードウェア・ユニット14は、オーディオ・フレームの始まりに関連づけられた波形サンプル・インデックスと、オーディオ・フレームの終わりに関連づけられた波形サンプル・インデックスとの間の差を計算する。帯域幅推定モジュール50は、始まり及び終わりの波形サンプル・インデックスの差を、参照波形内のサンプルの数と比較する。始まり及び終わりの波形サンプル・インデックスの差が波形内のサンプルの数よりも小さい場合、帯域幅推定モジュール50は、オーディオ・ハードウェア・ユニット14が、フレームの始まりに関連づけられたサンプル・インデックス及びフレームの終わりに関連づけられたサンプル・インデックスからのみ、参照波形の部分を取得する必要があると判定する。
DSP12は、MIDI音声について参照波形を取得するために必要とされる推定帯域幅が参照波形を取得するために割り当てられた帯域幅の量よりも大きいかどうかを判定する(68)。MIDI音声について参照波形を取得するために必要とされる推定帯域幅が参照波形を取得するために割り当てられた帯域幅の量以下の場合、DSP12は音声の合成パラメータを合成のために14へ送る(69)。
MIDI音声について参照波形を取得するために必要とされる推定帯域幅が参照波形を取得するために割り当てられた帯域幅の量よりも大きい場合、DSP12は、生成されたオーディオ情報から削除する少なくとも1つの音声を選択する(70)。音声選択モジュール52は、フレーム内の知覚的に最小の関連を有する音声を選択することを試みる。例えば、音声選択モジュール52は、最小振幅の音声が最小に知覚される可聴音声であるという発見的方法を使用して、最小振幅エンベロープを有する音声を選択する。代替的又は追加的に、音声選択モジュール52は、最も長い時間アクティブ又はオンにされていた音声、即ち、最も旧い音符を選択してもよい。例えば、音声選択モジュール52は、各音声に関連づけられて音声がアクティブであった連続フレームの数をカウントするフレーム・カウンタを分析して、最も連続的なフレームの間アクティブであった音声を選択する。幾つかのMIDI仕様、例えば、SP−MIDIにおいて、チャネルは優先順位値を割り当てられる。この場合、音声選択モジュール52は、最下位優先順位値を有するチャネルに関連づけられた音声を、削除する音声として選択する。
振幅、アクティブな長さ、又は音声に関連づけられた優先順位を分析することに加えて、音声選択モジュール52は音声に関連づけられた他の合成パラメータを分析して、選択を行ってもよい。一例として、音声選択モジュール52はADSRエンベロープの状態を分析し、アタック状態にない音声のみを選択する。典型的には、アタック状態にある音符は、他の状態にある音符よりも知覚的に人間の聴取者へ可聴である。代わりに、音声選択モジュール52は、ディケイ状態、サステイン状態、又はリリース状態にある音声のみを選択する。他の例として、音声選択モジュール52は、各音声に関連づけられた楽器のタイプを分析し、除去のために、知覚的に小さい関連を有する楽器を選択する。例えば、音声選択モジュール52は、打楽器に対応する音声の選択を回避するように試みる。なぜなら、打楽器は、人間の聴取者から、より知覚的に注目される傾向があるからである。
更に、音声選択モジュール52は、前に選択された音声に基づいて、削除する追加の音声を選択してもよい。例えば、幾つかの音声は層状音符、即ち、複数の音声を含む音符に属する。音声選択モジュール52が、層状音符に属する音声を最初に選択する場合、音声選択モジュール52は、削除するこの音符の他の音声を選択する。この理由は、層状音符の音声の1つを除去することは、いずれにしても異なるサウンド音符を生じる結果となるからである。
削除する音声を選択した後、DSP12は、選択された音声の参照波形を取得するために必要とされる帯域幅を、推定された帯域幅から減算する(72)。言い換えれば、DSP12は、選択された音声に必要な帯域幅を元の帯域幅推定値から減算する。このようにして、DSP12は、オーディオ・フレームの選択されなかった音声の参照波形を取得するために必要な帯域幅を再計算する。次いでDSP12は、再計算された帯域幅要件を、参照波形を取得するために割り当てられた帯域幅の量と比較する。DSP12は、波形を取得するために必要とされる推定帯域幅が参照波形を取得するために割り当てられた帯域幅の量よりも小さくなるまで、音声を選択し続ける。選択された音声に関連づけられた合成パラメータをオーディオ・ハードウェア・ユニット14へ送らないことによって、DSP12は、オーディオ・ハードウェア・ユニット14が参照波形を取得するために使用される帯域幅の量を制御する。
様々な例が説明された。本明細書で説明された技術の1つ又は複数の態様は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせで実現される。モジュール又はコンポーネントとして説明された特徴は、統合された論理デバイス内で共に実現されてもよく、離散的であるが相互運用可能な論理デバイスとして別々に実現されてもよい。ソフトウェアで実現される場合、これらの技術の1つ又は複数の態様は、少なくとも部分的に、実行されると上述した方法の1つ又は複数を行う命令を備えるコンピュータ読み取り可能媒体によって実現される。コンピュータ読み取り可能データ記憶媒体は、パッケージング・マテリアルを含むコンピュータ・プログラム製品の一部分を形成してもよい。コンピュータ読み取り可能媒体は、ランダム・アクセス・メモリ(RAM)、例えば、同期ダイナミック・ランダム・アクセス・メモリ(SDRAM)、読み出し専用メモリ(ROM)、不揮発性ランダム・アクセス・メモリ(NVRAM)、電気的に消去可能なプログラム可能読み出し専用メモリ(EEPROM)、フラッシュ・メモリ、磁気又は光学データ記憶媒体などを備えてもよい。これらの技術は、追加的又は代替的に、少なくとも部分的に、コンピュータ読み取り可能通信媒体によって実現されてもよい。コンピュータ読み取り可能通信媒体は、命令又はデータ構造の形式でコードを搬送又は通信し、コンピュータによってアクセスされ、読み取られ、及び/又は実行される。
命令は、1つ又は複数のプロセッサ、例えば、1つ又は複数のディジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途集積回路(ASIC)、フィールド・プログラマブル・ロジック・アレイ(FPGA)、又は他の同等の集積又は離散的論理回路によって実行される。したがって、「プロセッサ」という用語は、本明細書では、上記の構造又は本明細書で説明された技術の実現に適した任意の他の構造を意味する。加えて、幾つかの態様において、本明細書で説明された機能性は、この開示の技術を行うように構成又は適応された専用のソフトウェア・モジュール又はハードウェア・モジュール内で提供される。
ハードウェアで実現される場合、この開示の1つ又は複数の態様は、本明細書で説明された技術の1つ又は複数を行うように構成又は適応された回路、例えば、集積回路、チップセット、ASIC、FPGA、論理、又はこれらの様々な組み合わせであってもよい。技術回路は、本明細書で説明されるように、集積回路又はチップセット内に、プロセッサ及び1つ又は複数のハードウェア・ユニットの双方を含んでもよい。
また、当業者は、上述された機能の幾つか又は全てを回路が実現することを認識することに着目するべきである。全ての機能を実現する1つの回路が存在してもよく、又は機能を実現する複数の回路セクションが存在してもよい。最新の移動プラットフォーム・テクノロジを用いると、集積回路は、少なくとも1つのDSP、及びDSPを制御及び/又はDSPと通信する少なくとも1つの先進縮小命令セット・コンピュータ(Advanced Reduced Instruction Set Computer)(RISC)マシン(Machine)(ARM)プロセッサを備えてもよい。更に、回路は、幾つかのセクションとして設計又は実現されてもよく、幾つかの場合には、この開示で説明された異なる機能を行うようにセクションが再使用されてもよい。
様々な態様及び例が説明された。しかしながら、以下の特許請求の範囲から逸脱することなく、この開示の構造又は技術への変更がなされ得る。例えば、他のタイプのデバイスも、本明細書で説明されたMIDI処理技術を実現できるであろう。この開示のこれら及び他の態様は、以下の特許請求の範囲内にある。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[1]オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定することと、前記帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する前記音声の1つ又は複数を選択することと、を備える方法。
[2]前記削除する前記音声の1つ又は複数を選択することは、前記音声の最小振幅を有する少なくとも1つを選択することを備える、[1]に記載の方法。
[3]前記削除する前記音声の1つ又は複数を選択することは、前記音声の最も長い時間オンにされていた少なくとも1つを選択することを備える、[1]に記載の方法。
[4]前記選択された音声が音声の複数の層を有する音符に対応するかどうかを判定することと、削除する前記選択された音声のいずれかに対応する前記複数層音符の他の層の前記音声の1つ又は複数を選択することと、を更に備える、[1]に記載の方法。
[5]前記オーディオ・フレームの前記音声に対応する複数のオーディオ・チャネルに関連づけられた優先順位値を分析することを更に備え、前記削除する前記音声の1つ又は複数を選択することは、前記優先順位値の最小のものに対応する前記オーディオ・チャネルに関連づけられた1つ又は複数の音声を選択することを備える、[1]に記載の方法。
[6]前記音声の各々に関連づけられたADSRエンベロープの状態を判定することを更に備え、前記削除する前記音声の1つ又は複数を選択することは、前記対応するADSRエンベロープのアタック状態にない1つ又は複数の音声を選択することを備える、[1]に記載の方法。
[7]前記音声の各々に対応する楽器のタイプを判定することを更に備え、前記削除する前記音声の1つ又は複数を選択することは、打楽器に対応しない1つ又は複数の音声を選択することを備える、[1]に記載の方法。
[8]前記選択されなかった音声について前記帯域幅推定値を再計算することと、前記再計算された帯域幅推定値が前記割り当てられた帯域幅を超過するとき、削除する1つ又は複数の追加の音声を選択することと、を更に備える、[1]に記載の方法。
[9]前記帯域幅推定値を再計算することは、前記選択された音声に関連づけられた帯域幅推定値を前記オーディオ・フレームの前記帯域幅推定値から減算することを備える、[8]に記載の方法。
[10]前記帯域幅を推定することは、前記オーディオ・フレームの前記音声に対応する前記参照波形のサンプルの総数を推定することを備える、[1]に記載の方法。
[11]前記参照波形を取得するために必要な前記帯域幅を推定することは、前記オーディオ・フレームの前記音声の各々について再生位置を決定することと、前記対応する再生位置が前記関連づけられた参照波形の前記ループ・セクション内にある音声について、前記参照波形を取得するために必要な前記帯域幅を、前記参照波形のループ・セクションの前記サンプルの数として推定することと、を備える、[1]に記載の方法。
[12]前記参照波形を取得するために必要な前記帯域幅を推定することは、前記音声の各々について、前記オーディオ・フレームの始まりにおける前記音声に関連づけられた波形サンプル・インデックスと前記オーディオ・フレームの終わりにおける前記音声に関連づけられた波形サンプル・インデックスとの間の差を計算することと、前記差を前記音声に関連づけられたそれぞれの参照波形内のサンプルの総数と比較することと、前記対応する差がサンプルの前記総数よりも小さいとき、前記音声に関連づけられた前記参照波形の各々を取得するために必要な前記帯域幅を、前記オーディオ・フレームの前記始まりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスと前記オーディオ・フレームの前記終わりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスとの間の前記サンプルの数として推定することと、を備える、[1]に記載の方法。
[13]参照波形を取得するために必要な前記帯域幅を推定することは、ディジタル信号プロセッサ(DSP)内で、メモリから前記参照波形を取得するためにハードウェア・ユニットに必要な帯域幅を推定することを備え、前記帯域幅推定値が前記割り当てられた帯域幅以下のとき、前記ハードウェア・ユニット内で、前記選択されなかった音声に関連づけられた合成パラメータを受け取ることと、前記ハードウェア・ユニット内で、前記受け取られた合成パラメータを使用してオーディオ情報を生成することと、を更に備える、[1]に記載の方法。
[14]前記選択されない音声について前記ハードウェア・ユニットの合成パラメータを通過させることを更に備える、[13]に記載の方法。
[15]前記帯域幅推定値が前記割り当てられた帯域幅以下のとき、前記オーディオ・フレームの前記選択されなかった音声に対応する前記参照波形を取得することと、前記取得された参照波形を使用してオーディオ情報を生成することと、を更に備える、[1]に記載の方法。
[16]オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定する帯域幅推定モジュールと、前記帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する音声の1つ又は複数を選択する音声選択モジュールと、を備えるデバイス。
[17]前記音声選択モジュールは前記音声の最小振幅を有する少なくとも1つを選択する、[16]に記載のデバイス。
[18]前記音声選択モジュールは、前記音声の最も長い時間オンにされていた少なくとも1つを、削除する前記音声として選択する、[16]に記載のデバイス。
[19]前記音声選択モジュールは、前記選択された音声が音声の複数層を有する音符に対応するかどうかを判定し、削除する前記選択された音声のいずれかに対応する前記複数層音符の他の層の前記音声の1つ又は複数を選択する、[16]に記載のデバイス。
[20]前記音声選択モジュールは、前記オーディオ・フレームの前記音声に対応する複数のオーディオ・チャネルに関連づけられた優先順位値を分析し、前記優先順位値の最小のものに対応する前記オーディオ・チャネルの1つに関連づけられた前記音声の1つ又は複数を選択する、[16]に記載のデバイス。
[21]前記音声選択モジュールは、前記音声の各々に関連づけられたADSRエンベロープの状態を判定し、前記対応するADSRエンベロープのアタック状態にない前記音声の1つ又は複数を選択する、[16]に記載のデバイス。
[22]前記音声選択モジュールは、前記音声の各々に対応する楽器のタイプを判定し、打楽器に対応しない前記音声の1つ又は複数を選択する、[16]に記載のデバイス。
[23]前記帯域幅推定モジュールは、前記選択されなかった音声について前記帯域幅推定値を再計算し、前記音声選択モジュールは、前記再計算された帯域幅推定値が前記割り当てられた帯域幅を超過するとき、削除する1つ又は複数の追加の音声を選択する、[16]に記載のデバイス。
[24]前記帯域幅推定モジュールは、前記選択された音声に関連づけられた帯域幅推定値を前記帯域幅推定値から減算して前記帯域幅推定値を再計算する、[23]に記載のデバイス。
[25]前記帯域幅推定モジュールは、前記オーディオ・フレームの音声について前記参照波形のサンプルの総数を推定する、[16]に記載のデバイス。
[26]前記帯域幅推定モジュールは、前記音声の各々について再生位置を決定し、前記再生位置が前記それぞれの参照波形のループ・セクション内にある前記音声について、前記音声の各々に関連づけられた前記参照波形を取得するために必要な前記帯域幅を前記それぞれの参照波形の前記ループ・セクションのサンプルの数として推定する、[16]に記載のデバイス。
[27]前記帯域幅推定モジュールは、前記音声の各々について、前記オーディオ・フレームの始まりにおける前記音声の各々に関連づけられた波形サンプル・インデックスと前記オーディオ・フレームの終わりにおける前記音声の各々に関連づけられた波形サンプル・インデックスとの間の差を計算し、前記差の各々を前記それぞれの参照波形内のサンプルの総数と比較し、前記対応する差がサンプルの前記総数よりも小さいとき、前記参照波形の各々を取得するために必要な前記帯域幅を、前記オーディオ・フレームの前記始まりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスと前記オーディオ・フレームの前記終わりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスとの間のサンプルの前記数として推定する、[16]に記載のデバイス。
[28]ソフトウェアを実行して前記オーディオ・フレームを構文解析し、前記オーディオ・フレームに関連づけられた事象をスケジュールするプロセッサと、前記事象を処理して合成パラメータを生成するディジタル信号プロセッサ(DSP)と、前記合成パラメータに基づいてオーディオ情報を生成するハードウェア・ユニットと、を更に備える、[16]に記載のデバイス。
[29]前記帯域幅推定モジュール及び前記音声選択モジュールは前記DSP内で実現され、前記参照波形をメモリから取得するために前記ハードウェア・ユニットに必要な前記帯域幅を制御する、[28]に記載のデバイス。
[30]前記DSPは前記選択されなかった音声について合成パラメータを前記ハードウェア・ユニットへ提供する、[29]に記載のデバイス。
[31]前記帯域幅推定モジュール及び前記音声選択モジュールは前記ハードウェア・ユニット内で実現され、前記参照波形をメモリから取得するために前記ハードウェア・ユニットによって使用される前記帯域幅を制御する、[28]に記載のデバイス。
[32]前記プロセッサ、前記DSP、及び前記ハードウェア・ユニットは、パイプライン方式で動作する、[28]に記載のデバイス。
[33]楽器ディジタル・インタフェース(MIDI)ファイルを構文解析して前記MIDIファイルに関連づけられたMIDI事象をスケジュールする第1のスレッド、前記MIDI事象を処理してMIDI合成パラメータを生成する第2のスレッド、及び前記帯域幅推定モジュール及び前記音声選択モジュールを実現する第3のスレッドを含むマルチスレッド・ディジタル信号プロセッサ(DSP)と、前記合成パラメータに基づいてオーディオ・サンプルを生成するハードウェア・ユニットと、を更に備える、[28]に記載のデバイス。
[34]前記オーディオ・フレームは楽器ディジタル・インタフェース(MIDI)フレームを備える、[16]に記載のデバイス。
[35]オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形をメモリから取得するために必要な帯域幅を推定する手段と、前記帯域幅推定値が、割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する前記音声の1つ又は複数を選択する手段と、を備えるデバイス。
[36]前記音声選択手段は、前記音声の最小振幅を有する少なくとも1つと、前記音声の最も長い時間オンにされていた少なくとも1つと、前記音声の最小の優先順位値に対応するオーディオ・チャネルに関連づけられた少なくとも1つと、のうちの1つを選択する、[35]に記載のデバイス。
[37]前記音声の各々に関連づけられたADSRエンベロープの状態を判定する手段を更に備え、前記音声選択手段は、前記対応するADSRエンベロープのアタック状態にない前記音声の1つ又は複数を選択する、[35]に記載のデバイス。
[38]前記音声の各々に対応する楽器のタイプを判定する手段を更に備え、前記音声選択手段は、打楽器に対応しない前記音声の1つ又は複数を選択する、[35]に記載のデバイス。
[39]前記推定手段は、前記選択されなかった音声について前記帯域幅推定値を再計算し、前記音声選択手段は、前記再計算された帯域幅推定値が前記割り当てられた帯域幅を超過するとき、削除する1つ又は複数の追加の音声を選択する、[35]に記載のデバイス。
[40]前記帯域幅推定手段は、前記オーディオ・フレームの前記音声の各々について再生位置を決定し、前記再生位置がループ・セクション内にある前記音声について、前記参照波形を取得するために必要な前記帯域幅を、前記参照波形の前記ループ・セクションのサンプルの数として推定する、[35]に記載のデバイス。
[41]前記音声の各々について、前記オーディオ・フレームの始まりにおける前記音声に関連づけられた波形サンプル・インデックスと前記オーディオ・フレームの終わりにおける前記音声に関連づけられた波形サンプル・インデックスとの間の差を計算する手段と、 前記差を前記音声に関連づけられたそれぞれの参照波形内のサンプルの総数と比較する手段と、を更に備え、前記推定手段は、前記対応する差がサンプルの前記総数よりも小さいとき、前記音声に関連づけられた前記参照波形の各々を取得するために必要な前記帯域幅を、前記オーディオ・フレームの前記始まりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスと前記オーディオ・フレームの前記終わりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスとの間のサンプルの数として推定する、[35]に記載のデバイス。
[42]前記オーディオ・フレームを構文解析して前記オーディオ・フレームに関連づけられた事象をスケジュールするソフトウェア手段と、前記事象を処理して合成パラメータを生成するファームウェア手段と、前記合成パラメータに基づいてオーディオ・サンプルを生成するハードウェア手段と、を更に備え、前記ファームウェア手段は、前記オーディオ・フレーム内の前記音声について前記参照波形をメモリから取得するために前記ハードウェア手段に必要な前記帯域幅を推定する前記推定手段と、前記帯域幅推定値が前記ハードウェア手段へ割り当てられた帯域幅を超過するとき、削除する前記音声の1つ又は複数を選択する前記音声選択手段と、を含む、[35]に記載のデバイス。
[43]命令を備えるコンピュータ読み取り可能媒体であって、前記命令は、オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定することと、前記帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する音声の1つ又は複数を選択することと、をプログラム可能プロセッサに行わせるコンピュータ読み取り可能媒体。
[44]前記選択されなかった音声について合成パラメータをハードウェア・ユニットへ提供することを前記プロセッサに行わせる命令を更に備える、[43]に記載のコンピュータ読み取り可能媒体。
[45]前記帯域幅推定値が前記割り当てられた帯域幅以下であるとき、前記オーディオ・フレームの前記選択されなかった音声に対応する前記参照波形を取得することと、前記取得された参照波形を使用してオーディオ情報を生成することと、を前記プロセッサに行わせる命令を更に備える、[43]に記載のコンピュータ読み取り可能媒体。
[46]ソフトウェアを実行してオーディオ・フレームを構文解析し、前記オーディオ・フレームに関連づけられた事象をスケジュールするプロセッサと、前記事象を処理して合成パラメータを生成するディジタル信号プロセッサ(DSP)と、前記合成パラメータの少なくとも一部分に基づいてオーディオ情報を生成するハードウェア・ユニットと、メモリ・ユニットと、を備え、前記DSPは、前記オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために前記ハードウェア・ユニットに必要な帯域幅の量を推定し、前記帯域幅推定値が前記ハードウェア・ユニットへ割り当てられた帯域幅の量を超過するとき、生成されたオーディオ情報から削除する前記音声の1つ又は複数を選択する、デバイス。
[47]前記DSPは、前記選択されなかった音声に関連づけられた前記合成パラメータを前記ハードウェア・ユニットへ提供する、[46]に記載のデバイス。
[48]前記ハードウェア・ユニットは、前記帯域幅推定値が前記割り当てられた帯域幅以下のとき、前記オーディオ・フレームの前記選択されなかった音声に対応する前記参照波形を取得し、前記取得された参照波形を使用してオーディオ情報を生成する、[46]に記載のデバイス。
[49]オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定し、前記帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する前記音声の1つ又は複数を選択する、ように構成された回路。
[50]前記選択されなかった音声について合成パラメータをハードウェア・ユニットへ提供するように構成された、[49]に記載の回路。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[1]オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定することと、前記帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する前記音声の1つ又は複数を選択することと、を備える方法。
[2]前記削除する前記音声の1つ又は複数を選択することは、前記音声の最小振幅を有する少なくとも1つを選択することを備える、[1]に記載の方法。
[3]前記削除する前記音声の1つ又は複数を選択することは、前記音声の最も長い時間オンにされていた少なくとも1つを選択することを備える、[1]に記載の方法。
[4]前記選択された音声が音声の複数の層を有する音符に対応するかどうかを判定することと、削除する前記選択された音声のいずれかに対応する前記複数層音符の他の層の前記音声の1つ又は複数を選択することと、を更に備える、[1]に記載の方法。
[5]前記オーディオ・フレームの前記音声に対応する複数のオーディオ・チャネルに関連づけられた優先順位値を分析することを更に備え、前記削除する前記音声の1つ又は複数を選択することは、前記優先順位値の最小のものに対応する前記オーディオ・チャネルに関連づけられた1つ又は複数の音声を選択することを備える、[1]に記載の方法。
[6]前記音声の各々に関連づけられたADSRエンベロープの状態を判定することを更に備え、前記削除する前記音声の1つ又は複数を選択することは、前記対応するADSRエンベロープのアタック状態にない1つ又は複数の音声を選択することを備える、[1]に記載の方法。
[7]前記音声の各々に対応する楽器のタイプを判定することを更に備え、前記削除する前記音声の1つ又は複数を選択することは、打楽器に対応しない1つ又は複数の音声を選択することを備える、[1]に記載の方法。
[8]前記選択されなかった音声について前記帯域幅推定値を再計算することと、前記再計算された帯域幅推定値が前記割り当てられた帯域幅を超過するとき、削除する1つ又は複数の追加の音声を選択することと、を更に備える、[1]に記載の方法。
[9]前記帯域幅推定値を再計算することは、前記選択された音声に関連づけられた帯域幅推定値を前記オーディオ・フレームの前記帯域幅推定値から減算することを備える、[8]に記載の方法。
[10]前記帯域幅を推定することは、前記オーディオ・フレームの前記音声に対応する前記参照波形のサンプルの総数を推定することを備える、[1]に記載の方法。
[11]前記参照波形を取得するために必要な前記帯域幅を推定することは、前記オーディオ・フレームの前記音声の各々について再生位置を決定することと、前記対応する再生位置が前記関連づけられた参照波形の前記ループ・セクション内にある音声について、前記参照波形を取得するために必要な前記帯域幅を、前記参照波形のループ・セクションの前記サンプルの数として推定することと、を備える、[1]に記載の方法。
[12]前記参照波形を取得するために必要な前記帯域幅を推定することは、前記音声の各々について、前記オーディオ・フレームの始まりにおける前記音声に関連づけられた波形サンプル・インデックスと前記オーディオ・フレームの終わりにおける前記音声に関連づけられた波形サンプル・インデックスとの間の差を計算することと、前記差を前記音声に関連づけられたそれぞれの参照波形内のサンプルの総数と比較することと、前記対応する差がサンプルの前記総数よりも小さいとき、前記音声に関連づけられた前記参照波形の各々を取得するために必要な前記帯域幅を、前記オーディオ・フレームの前記始まりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスと前記オーディオ・フレームの前記終わりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスとの間の前記サンプルの数として推定することと、を備える、[1]に記載の方法。
[13]参照波形を取得するために必要な前記帯域幅を推定することは、ディジタル信号プロセッサ(DSP)内で、メモリから前記参照波形を取得するためにハードウェア・ユニットに必要な帯域幅を推定することを備え、前記帯域幅推定値が前記割り当てられた帯域幅以下のとき、前記ハードウェア・ユニット内で、前記選択されなかった音声に関連づけられた合成パラメータを受け取ることと、前記ハードウェア・ユニット内で、前記受け取られた合成パラメータを使用してオーディオ情報を生成することと、を更に備える、[1]に記載の方法。
[14]前記選択されない音声について前記ハードウェア・ユニットの合成パラメータを通過させることを更に備える、[13]に記載の方法。
[15]前記帯域幅推定値が前記割り当てられた帯域幅以下のとき、前記オーディオ・フレームの前記選択されなかった音声に対応する前記参照波形を取得することと、前記取得された参照波形を使用してオーディオ情報を生成することと、を更に備える、[1]に記載の方法。
[16]オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定する帯域幅推定モジュールと、前記帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する音声の1つ又は複数を選択する音声選択モジュールと、を備えるデバイス。
[17]前記音声選択モジュールは前記音声の最小振幅を有する少なくとも1つを選択する、[16]に記載のデバイス。
[18]前記音声選択モジュールは、前記音声の最も長い時間オンにされていた少なくとも1つを、削除する前記音声として選択する、[16]に記載のデバイス。
[19]前記音声選択モジュールは、前記選択された音声が音声の複数層を有する音符に対応するかどうかを判定し、削除する前記選択された音声のいずれかに対応する前記複数層音符の他の層の前記音声の1つ又は複数を選択する、[16]に記載のデバイス。
[20]前記音声選択モジュールは、前記オーディオ・フレームの前記音声に対応する複数のオーディオ・チャネルに関連づけられた優先順位値を分析し、前記優先順位値の最小のものに対応する前記オーディオ・チャネルの1つに関連づけられた前記音声の1つ又は複数を選択する、[16]に記載のデバイス。
[21]前記音声選択モジュールは、前記音声の各々に関連づけられたADSRエンベロープの状態を判定し、前記対応するADSRエンベロープのアタック状態にない前記音声の1つ又は複数を選択する、[16]に記載のデバイス。
[22]前記音声選択モジュールは、前記音声の各々に対応する楽器のタイプを判定し、打楽器に対応しない前記音声の1つ又は複数を選択する、[16]に記載のデバイス。
[23]前記帯域幅推定モジュールは、前記選択されなかった音声について前記帯域幅推定値を再計算し、前記音声選択モジュールは、前記再計算された帯域幅推定値が前記割り当てられた帯域幅を超過するとき、削除する1つ又は複数の追加の音声を選択する、[16]に記載のデバイス。
[24]前記帯域幅推定モジュールは、前記選択された音声に関連づけられた帯域幅推定値を前記帯域幅推定値から減算して前記帯域幅推定値を再計算する、[23]に記載のデバイス。
[25]前記帯域幅推定モジュールは、前記オーディオ・フレームの音声について前記参照波形のサンプルの総数を推定する、[16]に記載のデバイス。
[26]前記帯域幅推定モジュールは、前記音声の各々について再生位置を決定し、前記再生位置が前記それぞれの参照波形のループ・セクション内にある前記音声について、前記音声の各々に関連づけられた前記参照波形を取得するために必要な前記帯域幅を前記それぞれの参照波形の前記ループ・セクションのサンプルの数として推定する、[16]に記載のデバイス。
[27]前記帯域幅推定モジュールは、前記音声の各々について、前記オーディオ・フレームの始まりにおける前記音声の各々に関連づけられた波形サンプル・インデックスと前記オーディオ・フレームの終わりにおける前記音声の各々に関連づけられた波形サンプル・インデックスとの間の差を計算し、前記差の各々を前記それぞれの参照波形内のサンプルの総数と比較し、前記対応する差がサンプルの前記総数よりも小さいとき、前記参照波形の各々を取得するために必要な前記帯域幅を、前記オーディオ・フレームの前記始まりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスと前記オーディオ・フレームの前記終わりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスとの間のサンプルの前記数として推定する、[16]に記載のデバイス。
[28]ソフトウェアを実行して前記オーディオ・フレームを構文解析し、前記オーディオ・フレームに関連づけられた事象をスケジュールするプロセッサと、前記事象を処理して合成パラメータを生成するディジタル信号プロセッサ(DSP)と、前記合成パラメータに基づいてオーディオ情報を生成するハードウェア・ユニットと、を更に備える、[16]に記載のデバイス。
[29]前記帯域幅推定モジュール及び前記音声選択モジュールは前記DSP内で実現され、前記参照波形をメモリから取得するために前記ハードウェア・ユニットに必要な前記帯域幅を制御する、[28]に記載のデバイス。
[30]前記DSPは前記選択されなかった音声について合成パラメータを前記ハードウェア・ユニットへ提供する、[29]に記載のデバイス。
[31]前記帯域幅推定モジュール及び前記音声選択モジュールは前記ハードウェア・ユニット内で実現され、前記参照波形をメモリから取得するために前記ハードウェア・ユニットによって使用される前記帯域幅を制御する、[28]に記載のデバイス。
[32]前記プロセッサ、前記DSP、及び前記ハードウェア・ユニットは、パイプライン方式で動作する、[28]に記載のデバイス。
[33]楽器ディジタル・インタフェース(MIDI)ファイルを構文解析して前記MIDIファイルに関連づけられたMIDI事象をスケジュールする第1のスレッド、前記MIDI事象を処理してMIDI合成パラメータを生成する第2のスレッド、及び前記帯域幅推定モジュール及び前記音声選択モジュールを実現する第3のスレッドを含むマルチスレッド・ディジタル信号プロセッサ(DSP)と、前記合成パラメータに基づいてオーディオ・サンプルを生成するハードウェア・ユニットと、を更に備える、[28]に記載のデバイス。
[34]前記オーディオ・フレームは楽器ディジタル・インタフェース(MIDI)フレームを備える、[16]に記載のデバイス。
[35]オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形をメモリから取得するために必要な帯域幅を推定する手段と、前記帯域幅推定値が、割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する前記音声の1つ又は複数を選択する手段と、を備えるデバイス。
[36]前記音声選択手段は、前記音声の最小振幅を有する少なくとも1つと、前記音声の最も長い時間オンにされていた少なくとも1つと、前記音声の最小の優先順位値に対応するオーディオ・チャネルに関連づけられた少なくとも1つと、のうちの1つを選択する、[35]に記載のデバイス。
[37]前記音声の各々に関連づけられたADSRエンベロープの状態を判定する手段を更に備え、前記音声選択手段は、前記対応するADSRエンベロープのアタック状態にない前記音声の1つ又は複数を選択する、[35]に記載のデバイス。
[38]前記音声の各々に対応する楽器のタイプを判定する手段を更に備え、前記音声選択手段は、打楽器に対応しない前記音声の1つ又は複数を選択する、[35]に記載のデバイス。
[39]前記推定手段は、前記選択されなかった音声について前記帯域幅推定値を再計算し、前記音声選択手段は、前記再計算された帯域幅推定値が前記割り当てられた帯域幅を超過するとき、削除する1つ又は複数の追加の音声を選択する、[35]に記載のデバイス。
[40]前記帯域幅推定手段は、前記オーディオ・フレームの前記音声の各々について再生位置を決定し、前記再生位置がループ・セクション内にある前記音声について、前記参照波形を取得するために必要な前記帯域幅を、前記参照波形の前記ループ・セクションのサンプルの数として推定する、[35]に記載のデバイス。
[41]前記音声の各々について、前記オーディオ・フレームの始まりにおける前記音声に関連づけられた波形サンプル・インデックスと前記オーディオ・フレームの終わりにおける前記音声に関連づけられた波形サンプル・インデックスとの間の差を計算する手段と、 前記差を前記音声に関連づけられたそれぞれの参照波形内のサンプルの総数と比較する手段と、を更に備え、前記推定手段は、前記対応する差がサンプルの前記総数よりも小さいとき、前記音声に関連づけられた前記参照波形の各々を取得するために必要な前記帯域幅を、前記オーディオ・フレームの前記始まりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスと前記オーディオ・フレームの前記終わりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスとの間のサンプルの数として推定する、[35]に記載のデバイス。
[42]前記オーディオ・フレームを構文解析して前記オーディオ・フレームに関連づけられた事象をスケジュールするソフトウェア手段と、前記事象を処理して合成パラメータを生成するファームウェア手段と、前記合成パラメータに基づいてオーディオ・サンプルを生成するハードウェア手段と、を更に備え、前記ファームウェア手段は、前記オーディオ・フレーム内の前記音声について前記参照波形をメモリから取得するために前記ハードウェア手段に必要な前記帯域幅を推定する前記推定手段と、前記帯域幅推定値が前記ハードウェア手段へ割り当てられた帯域幅を超過するとき、削除する前記音声の1つ又は複数を選択する前記音声選択手段と、を含む、[35]に記載のデバイス。
[43]命令を備えるコンピュータ読み取り可能媒体であって、前記命令は、オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定することと、前記帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する音声の1つ又は複数を選択することと、をプログラム可能プロセッサに行わせるコンピュータ読み取り可能媒体。
[44]前記選択されなかった音声について合成パラメータをハードウェア・ユニットへ提供することを前記プロセッサに行わせる命令を更に備える、[43]に記載のコンピュータ読み取り可能媒体。
[45]前記帯域幅推定値が前記割り当てられた帯域幅以下であるとき、前記オーディオ・フレームの前記選択されなかった音声に対応する前記参照波形を取得することと、前記取得された参照波形を使用してオーディオ情報を生成することと、を前記プロセッサに行わせる命令を更に備える、[43]に記載のコンピュータ読み取り可能媒体。
[46]ソフトウェアを実行してオーディオ・フレームを構文解析し、前記オーディオ・フレームに関連づけられた事象をスケジュールするプロセッサと、前記事象を処理して合成パラメータを生成するディジタル信号プロセッサ(DSP)と、前記合成パラメータの少なくとも一部分に基づいてオーディオ情報を生成するハードウェア・ユニットと、メモリ・ユニットと、を備え、前記DSPは、前記オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために前記ハードウェア・ユニットに必要な帯域幅の量を推定し、前記帯域幅推定値が前記ハードウェア・ユニットへ割り当てられた帯域幅の量を超過するとき、生成されたオーディオ情報から削除する前記音声の1つ又は複数を選択する、デバイス。
[47]前記DSPは、前記選択されなかった音声に関連づけられた前記合成パラメータを前記ハードウェア・ユニットへ提供する、[46]に記載のデバイス。
[48]前記ハードウェア・ユニットは、前記帯域幅推定値が前記割り当てられた帯域幅以下のとき、前記オーディオ・フレームの前記選択されなかった音声に対応する前記参照波形を取得し、前記取得された参照波形を使用してオーディオ情報を生成する、[46]に記載のデバイス。
[49]オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定し、前記帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する前記音声の1つ又は複数を選択する、ように構成された回路。
[50]前記選択されなかった音声について合成パラメータをハードウェア・ユニットへ提供するように構成された、[49]に記載の回路。
Claims (47)
- オーディオ・フレーム内の音声についてオーディオ情報を生成するためにオーディオ・ハードウェア・ユニットによって使用される参照波形をメモリから取得するために必要な帯域幅を推定することと、
前記帯域幅推定値が割り当てられた帯域幅を超過するとき、前記オーディオ情報から削除する前記音声の1つ又は複数を選択することと、
削除されるように選択された音声の1つ又は複数に関係する参照波形を取得しないで、前記メモリから前記参照波形の1つ又は複数を取得することと、
前記取得された参照波形を使用して前記オーディオ・ハードウェア・ユニットを介して前記オーディオ情報を生成することと、
を備える方法。 - 前記削除する前記音声の1つ又は複数を選択することは、前記音声の最小振幅を有する少なくとも1つを選択することを備える、請求項1に記載の方法。
- 前記削除する前記音声の1つ又は複数を選択することは、前記音声の最も長い時間オンにされていた少なくとも1つを選択することを備える、請求項1に記載の方法。
- 前記選択された音声が音声の複数の層を有する音符に対応するかどうかを判定することと、
削除する前記選択された音声のいずれかに対応する前記複数層音符の他の層の前記音声の1つ又は複数を選択することと、
を更に備える、請求項1に記載の方法。 - 前記オーディオ・フレームの前記音声に対応する複数のオーディオ・チャネルに関連づけられた優先順位値を分析することを更に備え、
前記削除する前記音声の1つ又は複数を選択することは、前記優先順位値の最小のものに対応する前記オーディオ・チャネルに関連づけられた1つ又は複数の音声を選択することを備える、
請求項1に記載の方法。 - 前記音声の各々に関連づけられたADSRエンベロープの状態を判定することを更に備え、
前記削除する前記音声の1つ又は複数を選択することは、前記対応するADSRエンベロープのアタック状態にない1つ又は複数の音声を選択することを備える、
請求項1に記載の方法。 - 前記音声の各々に対応する楽器のタイプを判定することを更に備え、
前記削除する前記音声の1つ又は複数を選択することは、打楽器に対応しない1つ又は複数の音声を選択することを備える、
請求項1に記載の方法。 - 前記選択されなかった音声について前記帯域幅推定値を再計算することと、
前記再計算された帯域幅推定値が前記割り当てられた帯域幅を超過するとき、削除する1つ又は複数の追加の音声を選択することと、
を更に備える、請求項1に記載の方法。 - 前記帯域幅推定値を再計算することは、前記選択された音声に関連づけられた帯域幅推定値を前記オーディオ・フレームの前記帯域幅推定値から減算することを備える、請求項8に記載の方法。
- 前記帯域幅を推定することは、前記オーディオ・フレームの前記音声に対応する前記参照波形のサンプルの総数を推定することを備える、請求項1に記載の方法。
- 前記参照波形を取得するために必要な前記帯域幅を推定することは、
前記オーディオ・フレームの前記音声の各々について再生位置を決定することと、
前記対応する再生位置が前記関連づけられた参照波形の前記ループ・セクション内にある音声について、前記参照波形を取得するために必要な前記帯域幅を、前記参照波形のループ・セクションの前記サンプルの数として推定することと、
を備える、請求項1に記載の方法。 - 前記参照波形を取得するために必要な前記帯域幅を推定することは、
前記音声の各々について、前記オーディオ・フレームの始まりにおける前記音声に関連づけられた波形サンプル・インデックスと前記オーディオ・フレームの終わりにおける前記音声に関連づけられた波形サンプル・インデックスとの間の差を計算することと、
前記差を前記音声に関連づけられたそれぞれの参照波形内のサンプルの総数と比較する
ことと、
前記対応する差がサンプルの前記総数よりも小さいとき、前記音声に関連づけられた前記参照波形の各々を取得するために必要な前記帯域幅を、前記オーディオ・フレームの前記始まりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスと前記オーディオ・フレームの前記終わりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスとの間の前記サンプルの数として推定することと、
を備える、請求項1に記載の方法。 - 参照波形を取得するために必要な前記帯域幅を推定することは、ディジタル信号プロセッサ(DSP)内で、メモリから前記参照波形を取得するために前記オーディオ・ハードウェア・ユニットに必要な帯域幅を推定することを備え、
前記帯域幅推定値が前記割り当てられた帯域幅以下のとき、前記オーディオ・ハードウェア・ユニット内で、前記選択されなかった音声に関連づけられた合成パラメータを受け取ることと、
前記オーディオ・ハードウェア・ユニット内で、前記受け取られた合成パラメータを使用してオーディオ情報を生成することと、
を更に備える、請求項1に記載の方法。 - 前記選択されない音声について前記ハードウェア・ユニットの合成パラメータを通過させることを更に備える、請求項13に記載の方法。
- オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を記憶するメモリと、
前記参照波形を前記メモリから取得するために必要な帯域幅を推定する帯域幅推定モジュールと、
前記帯域幅推定値が割り当てられた帯域幅を超過するとき、前記オーディオ情報から削除する音声の1つ又は複数を選択する音声選択モジュールと、
消去されるように選択される音声の1つ又は複数に関係する参照波形を取得しないで前記参照波形の1つ又は複数をメモリから取得し、前記取得される参照波形を使用して前記オーディオ情報を生成するオーディオ・ユニットと、
を備えるデバイス。 - 前記音声選択モジュールは前記音声の最小振幅を有する少なくとも1つを選択する、請求項15に記載のデバイス。
- 前記音声選択モジュールは、前記音声の最も長い時間オンにされていた少なくとも1つを、削除する前記音声として選択する、請求項15に記載のデバイス。
- 前記音声選択モジュールは、前記選択された音声が音声の複数層を有する音符に対応するかどうかを判定し、削除する前記選択された音声のいずれかに対応する前記音符の他の層と関連する前記音声の1つ又は複数を選択する、請求項15に記載のデバイス。
- 前記音声選択モジュールは、前記オーディオ・フレームの前記音声に対応する複数のオーディオ・チャネルに関連づけられた優先順位値を分析し、前記優先順位値の最小のものに対応する前記オーディオ・チャネルの1つに関連づけられた前記音声の1つ又は複数を選択する、請求項15に記載のデバイス。
- 前記音声選択モジュールは、前記音声の各々に関連づけられたADSRエンベロープの状態を判定し、前記対応するADSRエンベロープのアタック状態にない前記音声の1つ又は複数を選択する、請求項15に記載のデバイス。
- 前記音声選択モジュールは、前記音声の各々に対応する楽器のタイプを判定し、打楽器に対応しない前記音声の1つ又は複数を選択する、請求項15に記載のデバイス。
- 前記帯域幅推定モジュールは、前記選択されなかった音声について前記帯域幅推定値を再計算し、
前記音声選択モジュールは、前記再計算された帯域幅推定値が前記割り当てられた帯域幅を超過するとき、削除する1つ又は複数の追加の音声を選択する、請求項15に記載のデバイス。 - 前記帯域幅推定モジュールは、前記選択された音声に関連づけられた帯域幅推定値を前記帯域幅推定値から減算して前記帯域幅推定値を再計算する、請求項22に記載のデバイス。
- 前記帯域幅推定モジュールは、前記オーディオ・フレームの音声について前記参照波形のサンプルの総数を推定する、請求項15に記載のデバイス。
- 前記帯域幅推定モジュールは、前記音声の各々について再生位置を決定し、前記再生位置が前記それぞれの参照波形のループ・セクション内にある前記音声について、前記音声の各々に関連づけられた前記参照波形を取得するために必要な前記帯域幅を前記それぞれの参照波形の前記ループ・セクションのサンプルの数として推定する、請求項15に記載のデバイス。
- 前記帯域幅推定モジュールは、前記音声の各々について、前記オーディオ・フレームの始まりにおける前記音声の各々に関連づけられた波形サンプル・インデックスと前記オーディオ・フレームの終わりにおける前記音声の各々に関連づけられた波形サンプル・インデックスとの間の差を計算し、前記差の各々を前記それぞれの参照波形内のサンプルの総数と比較し、前記対応する差がサンプルの前記総数よりも小さいとき、前記参照波形の各々を取得するために必要な前記帯域幅を、前記オーディオ・フレームの前記始まりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスと前記オーディオ・フレームの前記終わりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスとの間のサンプルの前記数として推定する、請求項15に記載のデバイス。
- ソフトウェアを実行して前記オーディオ・フレームを構文解析し、前記オーディオ・フレームに関連づけられた事象をスケジュールするプロセッサと、
前記事象を処理して合成パラメータを生成するディジタル信号プロセッサ(DSP)と、
前記合成パラメータに基づいてオーディオ情報を生成するハードウェア・ユニットと、
を更に備え、前記オーディオ・ユニットは前記ハードウェア・ユニットである、請求項15に記載のデバイス。 - 前記帯域幅推定モジュール及び前記音声選択モジュールは前記DSP内で実現され、前記参照波形をメモリから取得するために前記ハードウェア・ユニットに必要な前記帯域幅を制御する、請求項27に記載のデバイス。
- 前記DSPは前記選択されなかった音声について合成パラメータを前記ハードウェア・ユニットへ提供する、請求項28に記載のデバイス。
- 前記帯域幅推定モジュール及び前記音声選択モジュールは前記ハードウェア・ユニット内で実現され、前記参照波形をメモリから取得するために前記ハードウェア・ユニットによって使用される前記帯域幅を制御する、請求項27に記載のデバイス。
- 前記プロセッサ、前記DSP、及び前記ハードウェア・ユニットは、パイプライン方式で動作する、請求項27に記載のデバイス。
- 楽器ディジタル・インタフェース(MIDI)ファイルを構文解析して前記MIDIファイルに関連づけられたMIDI事象をスケジュールする第1のスレッド、前記MIDI事象を処理してMIDI合成パラメータを生成する第2のスレッド、及び前記帯域幅推定モジュール及び前記音声選択モジュールを実現する第3のスレッドを含むマルチスレッド・ディジタル信号プロセッサ(DSP)と、
前記合成パラメータに基づいてオーディオ・サンプルを生成するハードウェア・ユニットと、
を更に備え、前記オーディオ・ユニットは前記ハードウェア・ユニットである、請求項27に記載のデバイス。 - 前記オーディオ・フレームは楽器ディジタル・インタフェース(MIDI)フレームを備える、請求項15に記載のデバイス。
- オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形をメモリから取得するために必要な帯域幅を推定する手段と、
前記帯域幅推定値が、割り当てられた帯域幅を超過するとき、前記オーディオ情報から削除する前記音声の1つ又は複数を選択する手段と、
削除されるように選択された音声の1つ又は複数に関係する参照波形を取得しないで、前記メモリから前記参照波形の1つ又は複数を取得するための手段と、
前記取得された参照波形を使用して前記オーディオ情報を生成するための手段と、
を備えるデバイス。 - 前記音声選択手段は、
前記音声の最小振幅を有する少なくとも1つと、
前記音声の最も長い時間オンにされていた少なくとも1つと、
前記音声の最小の優先順位値に対応するオーディオ・チャネルに関連づけられた少なくとも1つと、
のうちの1つを選択する、請求項34に記載のデバイス。 - 前記音声の各々に関連づけられたADSRエンベロープの状態を判定する手段を更に備え、
前記音声選択手段は、前記対応するADSRエンベロープのアタック状態にない前記音声の1つ又は複数を選択する、
請求項34に記載のデバイス。 - 前記音声の各々に対応する楽器のタイプを判定する手段を更に備え、
前記音声選択手段は、打楽器に対応しない前記音声の1つ又は複数を選択する、
請求項34に記載のデバイス。 - 前記推定手段は、前記選択されなかった音声について前記帯域幅推定値を再計算し、
前記音声選択手段は、前記再計算された帯域幅推定値が前記割り当てられた帯域幅を超過するとき、削除する1つ又は複数の追加の音声を選択する、
請求項34に記載のデバイス。 - 前記帯域幅推定手段は、前記オーディオ・フレームの前記音声の各々について再生位置を決定し、前記再生位置がループ・セクション内にある前記音声について、前記参照波形を取得するために必要な前記帯域幅を、前記参照波形の前記ループ・セクションのサンプルの数として推定する、請求項34に記載のデバイス。
- 前記音声の各々について、前記オーディオ・フレームの始まりにおける前記音声に関連づけられた波形サンプル・インデックスと前記オーディオ・フレームの終わりにおける前記音声に関連づけられた波形サンプル・インデックスとの間の差を計算する手段と、
前記差を前記音声に関連づけられたそれぞれの参照波形内のサンプルの総数と比較する手段と、
を更に備え、
前記推定手段は、前記対応する差がサンプルの前記総数よりも小さいとき、前記音声に関連づけられた前記参照波形の各々を取得するために必要な前記帯域幅を、前記オーディオ・フレームの前記始まりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスと前記オーディオ・フレームの前記終わりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスとの間のサンプルの数として推定する、請求項34に記載のデバイス。 - 前記オーディオ・フレームを構文解析して前記オーディオ・フレームに関連づけられた事象をスケジュールするソフトウェア手段と、
前記事象を処理して合成パラメータを生成するファームウェア手段と、
前記合成パラメータに基づいてオーディオ・サンプルを生成するハードウェア手段であって、前記ハードウェア手段は前記オーディオ情報を生成するための手段を備える、ハードウェア手段と、
を更に備え、
前記ファームウェア手段は、
前記オーディオ・フレーム内の前記音声について前記参照波形をメモリから取得するために前記ハードウェア手段に必要な前記帯域幅を推定する前記推定手段と、
前記帯域幅推定値が前記ハードウェア手段へ割り当てられた帯域幅を超過するとき、削除する前記音声の1つ又は複数を選択する前記音声選択手段と、
を含む、請求項34に記載のデバイス。 - 命令を備えるコンピュータ読み取り可能媒体であって、前記命令は、
オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形をメモリから取得するために必要な帯域幅を推定することと、
前記帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する音声の1つ又は複数を選択することと、
削除されるように選択された音声の1つまたは複数に関係する参照波形を取得しないで、前記メモリから前記参照波形の1つまたは複数を取得することと、
前記取得された参照波形を使用して前記オーディオ情報を生成することと、
をプロセッサに行わせるコンピュータ読み取り可能媒体。 - 前記選択されなかった音声について合成パラメータをハードウェア・ユニットへ提供することを前記プロセッサに行わせる命令を更に備える、請求項42に記載のコンピュータ読み取り可能媒体。
- ソフトウェアを実行してオーディオ・フレームを構文解析し、前記オーディオ・フレームに関連づけられた事象をスケジュールするプロセッサと、
前記事象を処理して合成パラメータを生成するディジタル信号プロセッサ(DSP)と、
前記合成パラメータの少なくとも一部分に基づいてオーディオ情報を生成するハードウェア・ユニットと、
メモリ・ユニットと、
を備え、
前記DSPは、前記オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を前記メモリ・ユニットから取得するために前記ハードウェア・ユニットに必要な帯域幅の量を推定し、前記帯域幅推定値が前記ハードウェア・ユニットへ割り当てられた帯域幅の量を超過するとき、前記オーディオ情報から削除する前記音声の1つ又は複数を選択し、前記ハードウェア・ユニットは、削除されるように選択された音声の1つまたは複数に関係する参照波形を取得しないで、前記メモリから前記参照波形の1つまたは複数を取得し、前記取得された参照波形を使用して前記オーディオ情報を生成する、デバイス。 - 前記DSPは、前記選択されなかった音声に関連づけられた前記合成パラメータを前記ハードウェア・ユニットへ提供する、請求項44に記載のデバイス。
- オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形をメモリから取得するために必要な帯域幅を推定し、
前記帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する前記音声の1つ又は複数を選択し、
削除されるように選択された音声の1つまたは複数に関係する参照波形を取得しないで、前記メモリから前記参照波形の1つまたは複数を取得し、
前記取得された参照波形を使用して前記オーディオ・ユニットを介して前記オーディオ情報を生成する、
ように構成された回路。 - 前記選択されなかった音声について合成パラメータをハードウェア・ユニットへ提供するように構成され、前記ハードウェア・ユニットは前記オーディオ・ユニットである、請求項46に記載の回路。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US89643807P | 2007-03-22 | 2007-03-22 | |
US60/896,438 | 2007-03-22 | ||
US12/041,871 | 2008-03-04 | ||
US12/041,871 US7807915B2 (en) | 2007-03-22 | 2008-03-04 | Bandwidth control for retrieval of reference waveforms in an audio device |
PCT/US2008/057240 WO2008115873A1 (en) | 2007-03-22 | 2008-03-17 | Bandwidth control for retrieval of reference waveforms in an audio device |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2010522362A JP2010522362A (ja) | 2010-07-01 |
JP2010522362A5 true JP2010522362A5 (ja) | 2014-01-16 |
JP5566876B2 JP5566876B2 (ja) | 2014-08-06 |
Family
ID=39511106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010501075A Expired - Fee Related JP5566876B2 (ja) | 2007-03-22 | 2008-03-17 | オーディオ・デバイスにおける参照波形の取得のための帯域幅制御 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7807915B2 (ja) |
EP (1) | EP2126891A1 (ja) |
JP (1) | JP5566876B2 (ja) |
KR (1) | KR101120969B1 (ja) |
CN (1) | CN101641731B (ja) |
TW (1) | TW200901159A (ja) |
WO (1) | WO2008115873A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2555481B1 (en) | 2010-03-31 | 2018-02-14 | Hytera Communications Corp., Ltd. | Method and system for adaptively identifying signal bandwidth |
CN101848176B (zh) * | 2010-03-31 | 2013-01-16 | 海能达通信股份有限公司 | 信号带宽自适应识别方法和系统 |
US20160055857A1 (en) * | 2014-08-19 | 2016-02-25 | Matthew Lee Johnston | System and method for generating dynamic sound environments |
EP3121814A1 (en) * | 2015-07-24 | 2017-01-25 | Sound object techology S.A. in organization | A method and a system for decomposition of acoustic signal into sound objects, a sound object and its use |
US9959342B2 (en) * | 2016-06-28 | 2018-05-01 | Microsoft Technology Licensing, Llc | Audio augmented reality system |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0535271A (ja) * | 1990-08-06 | 1993-02-12 | Roland Corp | 電子楽器のアサイナ |
JPH0519766A (ja) * | 1991-07-11 | 1993-01-29 | Roland Corp | 電子楽器の補間回路 |
JP2715795B2 (ja) * | 1992-03-05 | 1998-02-18 | ヤマハ株式会社 | 発音割当手段を有する楽音合成装置 |
JPH06195085A (ja) * | 1992-12-25 | 1994-07-15 | Casio Comput Co Ltd | 波形データ出力装置 |
JP2928452B2 (ja) * | 1994-03-17 | 1999-08-03 | 富士通株式会社 | Atm交換機及びatm交換機における呼受付け装置及び呼受付け方法 |
JP3521165B2 (ja) * | 1994-12-21 | 2004-04-19 | ヤマハ株式会社 | ファイル管理システム及び方法 |
JP3567293B2 (ja) * | 1994-12-24 | 2004-09-22 | カシオ計算機株式会社 | 発音チャンネル割当装置 |
JP3372124B2 (ja) * | 1995-01-20 | 2003-01-27 | 株式会社河合楽器製作所 | 電子楽器 |
JP3430731B2 (ja) * | 1995-09-22 | 2003-07-28 | ヤマハ株式会社 | 楽音制御システム |
GB2306043A (en) | 1995-10-03 | 1997-04-23 | Ibm | Audio synthesizer |
US5596159A (en) * | 1995-11-22 | 1997-01-21 | Invision Interactive, Inc. | Software sound synthesis system |
JPH10240265A (ja) * | 1997-02-27 | 1998-09-11 | Kawai Musical Instr Mfg Co Ltd | 楽音信号発生装置 |
JP3637578B2 (ja) * | 1997-10-21 | 2005-04-13 | ヤマハ株式会社 | 楽音生成方法 |
JP2001265342A (ja) * | 2000-03-22 | 2001-09-28 | Kawai Musical Instr Mfg Co Ltd | 楽音信号発生装置 |
JP4106798B2 (ja) * | 1999-03-10 | 2008-06-25 | ヤマハ株式会社 | 音源装置 |
JP2001215970A (ja) * | 2000-02-02 | 2001-08-10 | Roland Corp | 拡張波形記憶媒体および電子楽器 |
FR2808370A1 (fr) | 2000-04-28 | 2001-11-02 | Cit Alcatel | Procede de compression d'un fichier midi |
US20030084144A1 (en) * | 2001-10-30 | 2003-05-01 | Lipinski Greg J. | Network bandwidth optimization method and system |
JP3758159B2 (ja) * | 2002-09-17 | 2006-03-22 | ヤマハ株式会社 | 音源制御プログラム |
US7283585B2 (en) * | 2002-09-27 | 2007-10-16 | Broadcom Corporation | Multiple data rate communication system |
US7045700B2 (en) * | 2003-06-30 | 2006-05-16 | Nokia Corporation | Method and apparatus for playing a digital music file based on resource availability |
US7038119B2 (en) * | 2003-07-18 | 2006-05-02 | Telefonaktiebolaget L M Ericsson (Publ) | Dynamic control of processing load in a wavetable synthesizer |
DE10339032A1 (de) | 2003-08-25 | 2005-05-25 | Infineon Technologies Ag | Software-Synthesizer und Verfahren zum Erzeugen von Audiosignalen mit einer variablen Anzahl von Stimmen in Abhängigkeit vom Betriebszustand einer Prozessoreinheit |
JP3918817B2 (ja) * | 2004-02-02 | 2007-05-23 | ヤマハ株式会社 | 楽音生成装置 |
US7285712B2 (en) * | 2004-05-25 | 2007-10-23 | Mediatek Incorporation | Method of dynamically determining a maximum polyphony number according to operation mode and smoothly changing polyphony number when switching operation modes |
US8102878B2 (en) * | 2005-09-29 | 2012-01-24 | Qualcomm Incorporated | Video packet shaping for video telephony |
US8406309B2 (en) * | 2005-10-21 | 2013-03-26 | Qualcomm Incorporated | Video rate adaptation to reverse link conditions |
US20070127489A1 (en) * | 2005-11-18 | 2007-06-07 | Amaya Nestor A | Apparatus and method for the optimal utilization and delivery of multiple applications over a digital subscriber loop |
EP1970900A1 (en) * | 2007-03-14 | 2008-09-17 | Harman Becker Automotive Systems GmbH | Method and apparatus for providing a codebook for bandwidth extension of an acoustic signal |
US8041577B2 (en) * | 2007-08-13 | 2011-10-18 | Mitsubishi Electric Research Laboratories, Inc. | Method for expanding audio signal bandwidth |
EP2255534B1 (en) * | 2008-03-20 | 2017-12-20 | Samsung Electronics Co., Ltd. | Apparatus and method for encoding using bandwidth extension in portable terminal |
-
2008
- 2008-03-04 US US12/041,871 patent/US7807915B2/en not_active Expired - Fee Related
- 2008-03-17 KR KR1020097022038A patent/KR101120969B1/ko not_active IP Right Cessation
- 2008-03-17 EP EP08714256A patent/EP2126891A1/en not_active Withdrawn
- 2008-03-17 TW TW097109349A patent/TW200901159A/zh unknown
- 2008-03-17 JP JP2010501075A patent/JP5566876B2/ja not_active Expired - Fee Related
- 2008-03-17 CN CN2008800091465A patent/CN101641731B/zh not_active Expired - Fee Related
- 2008-03-17 WO PCT/US2008/057240 patent/WO2008115873A1/en active Search and Examination
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5134078B2 (ja) | 楽器ディジタルインタフェースハードウエア命令 | |
JP5566876B2 (ja) | オーディオ・デバイスにおける参照波形の取得のための帯域幅制御 | |
JP2010522362A5 (ja) | ||
JP2013152477A (ja) | 電子楽器デジタルインターフェースハードウェア命令セット | |
US7718882B2 (en) | Efficient identification of sets of audio parameters | |
US7807914B2 (en) | Waveform fetch unit for processing audio files | |
JP2010522364A (ja) | 楽器用デジタルインターフェース(midi)ファイルを処理するためのパイプライン技法 | |
JP2013083984A (ja) | オーディオファイルを処理するための共有バッファ管理 | |
US7687703B2 (en) | Method and device for generating triangular waves | |
US7893343B2 (en) | Musical instrument digital interface parameter storage | |
EP2126895A1 (en) | Audio processing hardware elements |