(57)【要約】  オーディオプレーヤにおいて可変ルートノートサポートを提供するための方法が説明される。電子楽器デジタルインターフェース（ＭＩＤＩ）データとユーザ定義機器のセットとをもつファイルは受け取られる。メトリックは、ユーザ定義機器におけるユーザ定義ルートノート、ＭＩＤＩデータにおけるＭＩＤＩノートに対するキー番号、プレーヤ固有のルートノートを使用して決定される。キー番号は、メトリックに基づいて調整される。【選択図】  図８
2011511308.tif 000002
【特許請求の範囲】
【請求項１】
オーディオプレーヤにおいて可変ルートノートサポートを提供するための方法であって、
電子楽器デジタルインターフェース（ＭＩＤＩ）データとユーザ定義機器のセットとをもつファイルを受け取ることと、
前記ユーザ定義機器におけるユーザ定義ルートノート、前記ＭＩＤＩデータにおけるＭＩＤＩノートに対するキー番号、プレーヤ固有のルートノートを使用してメトリックを決定することと、
前記メトリックに基づいて前記キー番号を調整することと
を備える方法。
【請求項２】
前記調整することは、前記キー番号を前記メトリックと取り替えることを備える、請求項１記載の方法。
【請求項３】
前記決定することは、前記プレーヤ固有のルートノートと前記キー番号とを合計することと、前記ユーザ定義ルートノートを引くこととを備える、請求項１記載の方法。
【請求項４】
前記ファイルを前記ＭＩＤＩデータと前記ユーザ定義機器とに解析することと、
前記ユーザ定義機器をプレーヤ固有のユーザ定義機器に変換することと、
前記ＭＩＤＩデータをプレーヤ固有のＭＩＤＩデータに変換することと、
前記プレーヤ固有のＭＩＤＩデータと前記プレーヤ固有のユーザ定義機器とをプレーヤ固有のコンテナフォーマットに統合することと
をさらに備える、請求項１記載の方法。
【請求項５】
前記ファイルは、電子楽器デジタルインターフェース（ＭＩＤＩ）データとユーザ定義機器とをサポートするフォーマットの中にある、請求項１記載の方法。
【請求項６】
前記ユーザ定義機器のセットは、Ｄｏｗｎｌｏａｄａｂｌｅ  Ｓｏｕｎｄｓ（ＤＬＳ）ファイルである、請求項１記載の方法。
【請求項７】
すべてのユーザ定義機器におけるすべてのリージョンの前記ルートノートを記憶することをさらに備える請求項１記載の方法。
【請求項８】
前記メトリックは、すべてのリージョンとすべての機器に対して決定される、請求項１記載の方法。
【請求項９】
前記ＭＩＤＩデータにおけるすべてのノートの前記キー番号は調整される、請求項１記載の方法。
【請求項１０】
オーディオプレーヤにおいて可変ルートノートサポートを提供するための装置であって、
プロセッサと、
前記プロセッサと電子的に通信するメモリと、
前記メモリに記憶された命令であって、
電子楽器デジタルインターフェース（ＭＩＤＩ）データとユーザ定義機器のセットとをもつファイルを受け取ることと、
前記ユーザ定義機器におけるユーザ定義ルートノート、前記ＭＩＤＩデータにおけるＭＩＤＩノートに対するキー番号、プレーヤ固有のルートノートを使用してメトリックを決定することと、
前記メトリックに基づいて前記キー番号を調整することと
を前記プロセッサによって実行可能な命令と
を備える装置。
【請求項１１】
前記調整することは、前記キー番号を前記メトリックと取り替えることを備える、請求項１０記載の装置。
【請求項１２】
前記決定することは、前記プレーヤ固有のルートノートと前記キー番号とを合計することと、前記ユーザ定義ルートノートを引くこととを備える、請求項１０記載の装置。
【請求項１３】
前記命令は、
前記ファイルを前記ＭＩＤＩデータと前記ユーザ定義機器とに解析することと、
前記ユーザ定義機器をプレーヤ固有のユーザ定義機器に変換することと、
前記ＭＩＤＩデータをプレーヤ固有のＭＩＤＩデータに変換することと、
前記プレーヤ固有のＭＩＤＩデータと前記プレーヤ固有のユーザ定義機器とをプレーヤ固有のコンテナフォーマットに統合することと
をさらに実行可能である、請求項１０記載の装置。
【請求項１４】
前記ファイルは、電子楽器デジタルインターフェース（ＭＩＤＩ）データとユーザ定義機器とをサポートするフォーマットの中にある、請求項１０記載の装置。
【請求項１５】
前記ユーザ定義機器のセットは、Ｄｏｗｎｌｏａｄａｂｌｅ  Ｓｏｕｎｄｓ（ＤＬＳ）ファイルである、請求項１０記載の装置。
【請求項１６】
前記命令は、すべてのユーザ定義機器におけるすべてのリージョンの前記ルートノートを記憶することをさらに実行可能である、請求項１０記載の装置。
【請求項１７】
前記メトリックは、すべてのリージョンとすべての機器に対して決定される、請求項１０記載の装置。
【請求項１８】
前記ＭＩＤＩデータにおけるすべてのノートの前記キー番号は調整される、請求項１０記載の装置。
【請求項１９】
オーディオプレーヤにおいて可変ルートノートサポートを提供するためのコンピュータプログラム製品であって、その上に命令を有するコンピュータ可読媒体を備え、前記命令は、
楽器用デジタル（ＭＩＤＩ）データとユーザ定義機器のセットとをもつファイルを受け取るためのコードと、
前記ユーザ定義機器におけるユーザ定義ルートノート、前記ＭＩＤＩデータにおけるＭＩＤＩノートに対するキー番号、プレーヤ固有のルートノートを使用してメトリックを決定するためのコードと、
前記メトリックに基づいて前記キー番号を調整するためのコードと
を備える、コンピュータプログラム製品。
【請求項２０】
前記調整するためのコードは、前記キー番号を前記メトリックと取り替えるためのコードを備える、請求項１９記載のコンピュータプログラム製品。
【請求項２１】
前記決定するためのコードは、前記プレーヤ固有のルートノートと前記キー番号とを合計するため、及び前記ユーザ定義ルートノートを引くためのコードを備える、請求項１９記載のコンピュータプログラム製品。
【請求項２２】
前記命令は、
前記ファイルを前記ＭＩＤＩデータと前記ユーザ定義機器とに解析するためのコードと、
前記ユーザ定義機器をプレーヤ固有のユーザ定義機器に変換するためのコードと、
前記ＭＩＤＩデータをプレーヤ固有のＭＩＤＩデータに変換するためのコードと、
前記プレーヤ固有のＭＩＤＩデータと前記プレーヤ固有のユーザ定義機器とをプレーヤ固有のコンテナフォーマットに統合するためのコードと
をさらに備える、請求項１９記載のコンピュータプログラム製品。
【請求項２３】
オーディオプレーヤにおいて可変ルートノートサポートを提供するための装置であって、
楽器用デジタル（ＭＩＤＩ）データとユーザ定義機器のセットとをもつファイルを受け取るための手段と、
前記ユーザ定義機器におけるユーザ定義ルートノート、前記ＭＩＤＩデータにおけるＭＩＤＩノートに対するキー番号、プレーヤ固有のルートノートを使用してメトリックを決定するための手段と、
前記メトリックに基づいて前記キー番号を調整するための手段と
を備える装置。
【請求項２４】
調整するための前記手段は、前記キー番号を前記メトリックと取り替えるための手段をさらに備える、請求項２３記載の装置。
【請求項２５】
決定するための前記手段は、前記プレーヤ固有のルートノートと前記キー番号とを合計するため、及び前記ユーザ定義ルートノートを引くための手段をさらに備える、請求項２３記載の装置。
【請求項２６】
前記ファイルを前記ＭＩＤＩデータと前記ユーザ定義機器とに解析するための手段と、
前記ユーザ定義機器をプレーヤ固有のユーザ定義機器に変換するための手段と、
前記ＭＩＤＩデータをプレーヤ固有のＭＩＤＩデータに変換するための手段と、
前記プレーヤ固有のＭＩＤＩデータと前記プレーヤ固有のユーザ定義機器とをプレーヤ固有のコンテナフォーマットに統合するための手段と
をさらに備える、請求項２３記載の装置。
【請求項２７】
オーディオプレーヤにおいて可変ルートノートサポートを提供するための集積回路であって、
楽器用デジタル（ＭＩＤＩ）データとユーザ定義機器のセットとをもつファイルを受け取ることと、
前記ユーザ定義機器におけるユーザ定義ルートノート、前記ＭＩＤＩデータにおけるＭＩＤＩノートに対するキー番号、プレーヤ固有のルートノートを使用してメトリックを決定することと、
前記メトリックに基づいて前記キー番号を調整することと
を行うように構成された集積回路。
【請求項２８】
前記キー番号を調整することは、前記キー番号を前記メトリックと取り替える、請求項２７記載の集積回路。
【請求項２９】
メトリックを決定することは、前記プレーヤ固有のルートノートと前記キー番号とを合計することと、前記ユーザ定義ルートノートを引くこととを備える、請求項２７記載の集積回路。
【請求項３０】
前記ファイルを前記ＭＩＤＩデータと前記ユーザ定義機器とに解析することと、
前記ユーザ定義機器をプレーヤ固有のユーザ定義機器に変換することと、
前記ＭＩＤＩデータをプレーヤ固有のＭＩＤＩデータに変換することと、
前記プレーヤ固有のＭＩＤＩデータと前記プレーヤ固有のユーザ定義機器とをプレーヤ固有のコンテナフォーマットに統合することと
をさらに行うように構成された請求項２７記載の集積回路。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は、発明者Ｐｒａｊａｋｔ  ＫｕｌｋａｒｎｉおよびＳｕｒｅｓｈ  Ｄｅｖａｌａｐａｌｌｉによる「Techniques to Improve the Similarity of the Output Sound Between Audio Players」と題する２００８年１月２４日に出願された米国仮特許出願第６１／０２３，１７４号に関し、その優先権を主張する。
【技術分野】
【０００２】
本開示は、デジタルオーディオに関する。詳細には、本開示は、ＭＩＤＩオーディオプレーヤにおいて可変ルートノートサポート（variable root note support）を提供することに関する。
【背景】
【０００３】
電子楽器デジタルインターフェース（ＭＩＤＩ）フォーマットは、ミュージック、スピーチ、トーン、警報などのオーディオサウンドの生成、通信および／または再生に使用される。ＭＩＤＩは多種多様な装置でサポートされる。例えば、無線電話機などワイヤレス通信デバイスは、呼出音や他のオーディオ出力などのダウンロード可能なサウンド用のＭＩＤＩファイルをサポートすることができる。アップルコンピュータ（登録商標）社が販売している「ｉＰｏｄ（登録商標）」デバイスやマイクロソフト（登録商標）社が販売している「Ｚｕｎｅ（登録商標）」デバイスなどデジタル音楽プレーヤも、ＭＩＤＩファイルフォーマットをサポートすることができる。ＭＩＤＩフォーマットをサポートする他のデバイスは、様々な音楽シンセサイザ、ワイヤレスモバイルデバイス、直接双方向通信デバイス（ウォーキートーキーと呼ばれることがある）、ネットワーク電話、パーソナルコンピュータ、デスクトップおよびラップトップコンピュータ、ワークステーション、衛星ラジオデバイス、相互通信方式デバイス、ラジオ放送デバイス、携帯ゲーム機、デバイスに取り付けられた回路基板、情報キオスク、ビデオゲームコンソール、児童用の様々なコンピュータ化された玩具、自動車で使用されるオンボードコンピュータ、船舶および航空機、ならびに多種多様な他のデバイスを含む。
【０００４】
ＭＩＤＩファイルは、ＭＩＤＩプレーヤ上でプレイされる楽音に関する情報を含むことができる。しかしながら、ＭＩＤＩプレーヤは、ＭＩＤＩファイルをプレイするためのプレーヤ固有のパラメータをも使用することができる。したがって、同じＭＩＤＩファイルが２つの異なるＭＩＤＩプレーヤでプレイされるとき、同じに聞こえないことがある。これの考えられる理由は、マルチリージョン機器サポート（multi-region instrument support）または可変ルートノートサポートがないことである。したがって、オーディオプレーヤにおいて可変ルートノートサポートを提供するための技法が必要である。
【図面の簡単な説明】
【０００５】
【図１】図１は、本システムおよび方法を用いて修正できるシステムを例示するブロック図である。
【図２】図２は、本システムおよび方法にしたがって修正でき、そのうえ類似の出力を維持することができるシステムを例示するブロック図である。
【図３】図３は、オーディオプレーヤにおいてマルチリージョン機器サポートおよび可変ルートノートサポートを提供するためのシステムを例示するブロック図である。
【図３Ａ】図３Ａは、図３のシステムにおける変換モジュールがプロセッサによって実装できることを例示するブロック図である。
【図３Ｂ】図３Ｂは、図３のシステムにおける変換モジュール、未知のプレーヤ、および既知のプレーヤがプロセッサによって実装できることを例示するブロック図である。
【図４】図４は、オーディオプレーヤにおいてマルチリージョン機器サポートおよび可変ルートノートサポートを提供するためのシステムの別の構成を例示するブロック図である。
【図５】図５は、オーディオプレーヤにおいてマルチリージョン機器サポートを提供するためのシステムを例示するブロック図である。
【図６】図６は、オーディオプレーヤにおいてマルチリージョン機器サポートを提供するためのシステムの別の構成を例示するブロック図である。
【図７】図７は、オーディオプレーヤにおいてマルチリージョン機器サポートを提供するための方法を例示する流れ図である。
【図７Ａ】図７Ａは、図７の方法に対応するミーンズプラスファンクションブロックを例示する。
【図８】図８は、オーディオプレーヤにおいて可変ルートノートサポートを提供するためのシステムを例示するブロック図である。
【図９】図９は、オーディオプレーヤにおいて可変ルートノートサポートを提供するためのシステムの別の構成を例示するブロック図である。
【図１０】図１０は、オーディオプレーヤにおいて可変ルートノートサポートを提供するための方法を例示する流れ図である。
【図１０Ａ】図１０Ａは、図１０の方法に対応するミーンズプラスファンクションブロックを例示する。
【図１１】図１１は、オーディオプレーヤにマルチリージョン機器サポートおよび可変ルートノートサポートを提供するためのシステムを例示するブロック図である。
【図１２】図１２は、オーディオプレーヤにマルチリージョン機器サポートおよび可変ルートノートサポートを提供するための方法を例示する流れ図である。
【図１２Ａ】図１２Ａは、図１２の方法に対応するミーンズプラスファンクションブロックを例示する。
【図１３】コンピューティングデバイス／電子デバイスにおいて利用できる様々な構成要素を例示するブロック図である。
【詳細な説明】
【０００６】
オーディオプレーヤにおいて可変ルートノートサポートを提供するための方法が開示される。ＭＩＤＩデータとユーザ定義機器のセットとをもつファイルが受け取られる。メトリックは、ユーザ定義機器におけるユーザ定義ルートノート、ＭＩＤＩデータにおけるＭＩＤＩノートに対するキー番号、プレーヤ固有のルートノートを使用して決定される。キー番号は、メトリックに基づいて調整される。
【０００７】
オーディオプレーヤにおいて可変ルートノートサポートを提供するための装置も開示される。本装置は、プロセッサと、プロセッサと電子的に通信するメモリとを含む。メモリには実行可能命令が記憶される。本命令は、ＭＩＤＩデータとユーザ定義機器のセットとをもつファイルを受け取るように実行可能である。本命令はまた、ユーザ定義機器におけるユーザ定義ルートノート、ＭＩＤＩデータにおけるＭＩＤＩノートに対するキー番号、プレーヤ固有のルートノートを使用してメトリックを決定するように実行可能とすることができる。本命令は、メトリックに基づいてキー番号を調整するように実行可能である。
【０００８】
オーディオプレーヤにおいて可変ルートノートサポートを提供するためのコンピュータプログラム製品も開示される。コンピュータプログラム製品は、その上に命令を有するコンピュータ可読媒体を備える。本命令は、ＭＩＤＩデータとユーザ定義機器のセットとをもつファイルを受け取るためのコードを含むことができる。本命令はまた、ユーザ定義機器におけるユーザ定義ルートノート、ＭＩＤＩデータにおけるＭＩＤＩノートに対するキー番号、プレーヤ固有のルートノートを使用してメトリックを決定するためのコードを含むことができる。本命令はまた、メトリックに基づいてキー番号を調整するためのコードを含むことができる。
【０００９】
オーディオプレーヤにおいて可変ルートノートサポートを提供するための装置も開示される。本装置は、ＭＩＤＩデータとユーザ定義機器のセットとをもつファイルを受け取るための手段を含むことができる。本装置はまた、ユーザ定義機器におけるユーザ定義ルートノート、ＭＩＤＩデータにおけるＭＩＤＩノートに対するキー番号、プレーヤ固有のルートノートを使用してメトリックを決定するための手段を含むことができる。本装置はまた、メトリックに基づいてキー番号を調整するための手段を含むことができる。
【００１０】
オーディオプレーヤにおいて可変ルートノートサポートを提供するための集積回路も開示される。本集積回路は、ＭＩＤＩデータとユーザ定義機器のセットとをもつファイルを受け取るように構成できる。本集積回路はまた、ユーザ定義機器におけるユーザ定義ルートノート、ＭＩＤＩデータにおけるＭＩＤＩノートに対するキー番号、プレーヤ固有のルートノートを使用してメトリックを決定するように構成できる。本集積回路はまた、メトリックに基づいてキー番号を調整するように構成できる。
【００１１】
電子楽器デジタルインターフェース（ＭＩＤＩ）プレーヤは、入力としてＭＩＤＩファイルを受け取り、出力として音楽を合成することができる。そうする際に、ＭＩＤＩプレーヤは、様々な合成技法を使用することができる。これらの合成技法の２つには、周波数変調（ＦＭ）合成とウェーブテーブル合成とを含む。ＭＩＤＩファイルは、プレイすべきノートのキー番号、ノートをプレイするときに使用すべき機器、ノート速度などを記述するメッセージを含むことができる。いくつかの非ＭＩＤＩ音楽デコーダとは異なり、ＭＩＤＩシンセサイザは、意図されたサウンドを記述する波形を復号することができない。代わりに、各ＭＩＤＩシンセサイザは、シンセサイザ固有のツールを使用して、ＭＩＤＩファイル中のメッセージに基づいて出力信号を生成することができる。したがって、２つの異なるＭＩＤＩプレーヤによってプレイされるときに、同じＭＩＤＩファイルが異なって聞こえることがある。ここで使用される「キー番号」と「ノート番号」という用語は、互換的に使用でき、ＭＩＤＩノートのピッチを識別するデータを示すために使用される。
【００１２】
これらの不整合問題を緩和するために、ＭＩＤＩ  Ｍａｎｕｆａｃｔｕｒｅｒｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＭＭＡ）はＤｏｗｎｌｏａｄａｂｌｅ  Ｓｏｕｎｄｓ（ＤＬＳ）の概念を導入した。ＤＬＳは、ＭＩＤＩ機器がどのように鳴るべきかを規定し、機器を合成するために必要なすべてのパラメータを含む。
【００１３】
ＤＬＳ規格にしたがって、各機器はリージョンに分割されることができる。リージョンは、機器上のノートのセットを表すことができる。機器は、０〜１２７のＭＩＤＩノート範囲全体をカバーするただ１つのリージョンを有することができ、または全範囲のサブセットをそれぞれカバーする複数のリージョンを有することができる。例えば、ピアノ機器は、ノート０〜３０をカバーする第１のリージョン、ノート３１〜１２０をカバーする第２のリージョン、およびノート１２１〜１２７をカバーする第３のリージョンを有するものとしてＤＬＳファイル中で定義できる。ＤＬＳファイルは、各リージョンのルートノートと波形とを定義することができる。ルートノートは、修正されていない波形が関連付けられるノートとすることができる。言い換えれば、ルートノートがプレイされるように選択された場合、プレーヤは、リージョンに関連する波形をピッチ修正なしに出力することができる。しかしながら、非ルートノートがプレイされるように選択された場合、波形のピッチは所望の出力を達成するために変更されることができる。また、ルートノートの場合でも、波形に対する変調または他の非ピッチ修正があることがある。例えば、波形は、様々なサンプリング周波数を捕らえるためにリサンプリングされるとしてもよい。
【００１４】
図１は、本システムおよび方法を用いて修正できるシステム１００を例示するブロック図である。ここで使用される「音楽ファイル」という用語は、ＭＩＤＩフォーマットおよびユーザ定義機器データに準拠する少なくとも１つのオーディオトラックを含むオーディオデータまたはファイルを指す。ＭＩＤＩフォーマットに準拠し、音楽ファイル１１０中にあるファイルフォーマットは、Ｑｕａｌｃｏｍｍ（登録商標）社によって開発されたＣｏｍｐａｃｔ  Ｍｅｄｉａ  Ｅｘｔｅｎｓｉｏｎｓ（ＣＭＸ）、ヤマハ株式会社（登録商標）によって開発されたＳｙｎｔｈｅｔｉｃ  Ｍｕｓｉｃ  Ｍｏｂｉｌｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｆｏｒｍａｔ（ＳＭＡＦ）、およびＳｃａｌａｂｌｅ  Ｐｏｌｙｐｈｏｎｙ  ＭＩＤＩ（ＳＰ−ＭＩＤＩ）を含む。音楽ファイル１１０中のユーザ定義機器データは、機器情報を含むＤＬＳファイルとすることができる。例えば、音楽ファイル１１０は、ＤＬＳとＭＩＤＩファイルとを含むｅＸｔｅｎｓｉｂｌｅ  Ｍｕｓｉｃ  Ｆｏｒｍａｔ（ＸＭＦ）ファイルとすることができる。
【００１５】
ＭＩＤＩはメッセージベースのプロトコルであるので、各オーディオプレーヤ１０４、１０８は、固有のファイルフォーマットサポートを使用して、音楽ファイル１１０をプレイすることができる。このファイルフォーマットサポートは、音楽ファイル１１０中のＭＩＤＩメッセージに基づいて出力を生成するために使用される１つまたは複数のファイルを含むことができ、別々のオーサリングツール１０２、１０６中に常駐することができる。言い換えれば、第１のオーサリングツール１０２は、第１のシンセサイザ１０５が音楽ファイル１１０をプレイするために使用することができるファイルフォーマットサポートを含むことができる。同様に、第２のオーサリングツール１０６は、第２のシンセサイザ１０９が音楽ファイル１１０をプレイするために使用することができるファイルフォーマットサポートを含むことができる。さらに、第１のオーサリングツール１０２は、音楽ファイル１１０を第１のプレーヤ固有のフォーマット１０３に変換することができ、第２のオーサリングツール１０６は、音楽ファイル１１０を第２のプレーヤ固有のフォーマット１０７に変換することができる。第１のオーサリングツール１０２は第２のオーサリングツール１０６とは異なることがあるので、第１のプレーヤ出力１１２は第２のプレーヤ出力１１４とは異なることがある。詳細には、第１のプレーヤ出力１１２と第２のプレーヤ出力１１４との相違は、以下に起因することがある。（１）ＭＩＤＩプロトコルは、プレイすべきノート、ノートをプレイするときに使用すべき機器、ノートに対する変調などをのみ指定し、ＭＩＤＩは、ノートがプレイされるときにどのように鳴るべきかを指定しない、（２）様々なプレーヤは、合成のための様々な技法を使用することができる、および（３）同じ合成技法でも、様々なオーディオプレーヤは、同じ機器を異なるようにモデル化することがある。例えば、ＭＩＤＩ合成されたピアノは、ハイエンドのオーディオプレーヤでは本物のアコースティックグランドピアノのように聞こえることがあるが、低品質のオーディオプレーヤではトランペットのように聞こえることがある。
【００１６】
さらに、同じ音楽ファイル１１０が異なるプレーヤ１０４、１０８上でプレイされるときにも、いくつかの相違が観測されることがある。最初に、プレーヤ１０４、１０８の機器ボリュームミキシングが異なることがある。例えば、音楽ファイル１１０がピアノおよびフルートによってプレイされるＭＩＤＩノートを含む場合、第１のプレーヤ１０４では、ピアノノートがフルートノートよりも高いボリュームでプレイされ、第２のプレーヤ１０８では、フルートノートがピアノよりも高いボリュームでプレイされることがある。さらに、機器に対するビブラートおよびトレモロ効果は、機器が異なるプレーヤ１０４、１０８でモデル化される方法に応じて異なることがある。さらに、いくつかのプレーヤ１０４、１０８は、定義された範囲よりも高いまたは低いノートを無視することがある。
【００１７】
これらの相違にもかかわらず、異なるオーディオプレーヤ１０４、１０８において類似
の出力を発生するために、以下で説明する本システムおよび方法をシステム１００中に実装することができる。言い換えれば、本システムおよび方法を実装すると、第１のプレーヤ出力１１２は第２のプレーヤ出力１１４と類似になる。
【００１８】
図２は、本システムおよび方法にしたがって修正され、そのうえ類似の出力を維持することができるシステム２００を例示するブロック図である。システム２００に入る音楽ファイルは、ＤＬＳファイルとＭＩＤＩファイルとを含むＸＭＦファイル２１０とすることができる。ＤＬＳ機器パラメータはプレーヤ固有の機器パラメータにマッピングされることができるので、異なるＤＬＳ対応プレーヤ２０８上でプレイされるときでも、ＸＭＦファイル２１０は、類似の出力２１４を生成することができる。
【００１９】
しかしながら、ＸＭＦファイル２１０中で使用されるようなＤＬＳ規格は、ウェーブテーブル合成をサポートするシンセサイザの大部分において限定された機能でのみサポートされる。非ＤＬＳ対応プレーヤによってプレイされるとき、出力は、以下理由により類似に聞こえないことがある。第１に、ＤＬＳは、ユーザが、機器の任意のノートをそのリージョンのルートノートとして定義することを可能にする。非ＤＬＳプレーヤは、これを可能にしないが、そうではなくルートノートを固定することができる。ルートノートは、基準波形を識別するために使用されるので、入力ＤＬＳファイル中で指定されたルートノートではなく非ＤＬＳプレーヤの固定のルートノートを使用することにより、出力が、意図された出力とは異なって聞こえることがある。第２に、非ＤＬＳプレーヤは、単一の機器内で複数のリージョンをサポートすることができない。マルチリージョン機器を使用するノートがプレイされるとき、非ＤＬＳプレーヤはノートを単に無視するか、または間違ったリージョンを割り当て、プレーヤ設計に基づく不整合を引き起こす。第３に、非ＤＬＳプレーヤにおける範囲サポートが、制限され、矛盾していることがある。
【００２０】
ここで説明するシステムおよび方法は、プレーヤの１つがＤＬＳ対応プレーヤ２０８でないときでも、異なるプレーヤに類似の出力を与えることができる。これは、ＸＭＦファイル２１０を改変する変換モジュールを使用して行うことができる。例えば、本システムおよび方法は、ＱｕａｌｃｏｍｍのＣＭＸ（Ｃｏｍｐａｃｔ  Ｍｅｄｉａ  ｅＸｔｅｎｓｉｏｎ）プレーヤとヤマハのＳＭＡＦ（Ｓｙｎｔｈｅｔｉｃ  Ｍｕｓｉｃ  Ｍｏｂｉｌｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｆｏｒｍａｔ）プレーヤとに類似の出力を生成することができる。この例では、ＸＭＦファイル２１０があるとすれば、変換モジュールは、マルチリージョン機器をシングルリージョン機器にマッピングし、および／または、ＸＭＦファイル２１０中の１つまたは複数のノートを修正して、ＳＭＡＦファイルなどの新しい音楽ファイルを作成することができる。ＸＭＦファイル２１０に対するこれらの修正の後、新しい音楽ファイルは、ＳＭＡＦプレーヤなどの非ＤＬＳプレーヤによってプレイされるときに、ＸＭＦファイル２１０をプレイするＣＭＸプレーヤの出力と類似の出力を生成することができる。
【００２１】
図３は、オーディオプレーヤにおいてマルチリージョン機器サポートおよび可変ルートノートサポートを提供するためのシステム３００を例示するブロック図である。システム３００は、変換モジュール３１６と、未知のオーディオプレーヤ３０４と、既知のオーディオプレーヤ３０８とを含むことができる。本明細書で使用する「未知のプレーヤ」という用語は、１つまたは複数の合成パラメータおよび／または論理が変換モジュール３１６に知られていないオーディオプレーヤ、シンセサイザ、または両方を指す。例えば、未知のプレーヤ３０４は、変換モジュール３１６に知られていない方法でマルチリージョン機器およびユーザ定義ルートノートを解釈することができる。その結果、未知のプレーヤ出力３１２は予測不能であり、既知のプレーヤ出力３１４とは異なることがある。対照的に、「既知のプレーヤ」という用語は、合成パラメータおよび論理が変換モジュール３１６に知られているオーディオプレーヤ、シンセサイザ、または両方を指すことができる。例えば、既知のプレーヤ３０８は、マルチリージョン機器および可変ルートノートをサポートすることができる。したがって、未知のプレーヤ３０４は、未知の内部論理を使用してマルチリージョン機器および可変ルートノートを処理するので、既知の出力３１４は未知の出力３１２よりも予測可能である。言い換えれば、変換モジュール３１６は、未知の出力３１２を、さもなければ既知の出力３１４と類似でないときに類似にすることができる。
【００２２】
変換モジュール３１６は、音楽ファイル３１０または音楽ファイル３１０の一部を受け取り、未知の出力３１２が既知の出力３１４と類似になるように音楽ファイル３１０を調整することができる。例えば、変換モジュール３１６は、音楽ファイル３１０中のマルチリージョン機器を、未知のプレーヤ３０４において正しくプレイできるシングルリージョン機器にマッピングすることができる。代替的に、または追加として、変換モジュール３１６は、音楽ファイル３１０中の可変ルートノートと未知のプレーヤ３０４中の固定のルートノートとの差に基づいて、音楽ファイル３１０中のノートキー番号を調整することができる。これらの修正により、既知の出力３１４は未知の出力３１２と類似になる。
【００２３】
変換モジュール３１６は、ＭＩＤＩノートを受け取り、ＭＩＤＩノートキー番号および／または機器番号を調整し、ノートを１つずつ未知のプレーヤ３０４に送ることができる。代替的に、変換モジュール３１６は、音楽ファイル３１０を全体として受け取り、音楽ファイル３１０中のすべてのノートを調整し、次いで、ＭＩＤＩノートへの変更を反映する新しい音楽ファイル（図示せず）を生成することができる。新しい音楽ファイル（図示せず）を生成することは、音楽ファイル３１０中の調整されたパラメータを書き換えることを含む。例えば、変換モジュール３１６は、音楽ファイル３１０を受け取り、音楽ファイル３１０中のキー番号および機器番号を調整し、未知のプレーヤ３０４が未知のプレーヤ出力３１２を生成するために使用する新しい音楽ファイルを作成することができる。新しい音楽ファイルは、ＤＳＬファイルなどのユーザ定義機器を含むことができる。新しい音楽ファイルのＭＩＤＩ部分は、ＳＭＡＦファイル、または標準ＭＩＤＩファイル（ＳＭＦ）、ＣＭＸ、またはＳＰ−ＭＩＤＩなど異なるタイプのＭＩＤＩファイルとすることができる。例えば、新しい音楽ファイルは、音楽ファイル３１０のＭＩＤＩ部分中に含めることができないグラフィックスおよびパルス符号変調（ＰＣＭ）サポートを含むＳＭＡＦファイルを含むことができる。
【００２４】
変換モジュール３１６は、リージョントランスレータ３１８と、リージョンコンバータ３２０と、ノートトランスレータ３２２とを含むことができる。これらの３つのモジュールは、本システムおよび方法を実装するために組み合わさり、一緒にまたは独立して動作することができる。言い換えれば、変換モジュール３１６が動作するために、３つすべてが必要なわけではない。リージョンコンバータ３２０は、音楽ファイル３１０中のマルチリージョン機器を、シングルリージョン機器がマッピングされたリージョンと同じパラメータをもつシングルリージョン機器にマッピングすることができる。リージョントランスレータ３１８は、マルチリージョン機器をサポートしない未知のプレーヤ３０４が、依然として、マルチリージョン機器をもつ音楽ファイル３１０を正しくプレイすることができるように、これらのシングルリージョン機器を使用して音楽ファイル３１０中のＭＩＤＩノートを調整することができる。さらに、ノートトランスレータ３２２は、固定のルートノートをもつ未知のプレーヤ３０４が、可変ルートノートをもつ音楽ファイル３１０を正しくプレイすることを可能にすることができる。
【００２５】
図３Ａに示すように、変換モジュール３１６はプロセッサ３０１によって実装できる。図３Ｂに示すように、変換モジュール３１６、未知のプレーヤ３０４、および既知のプレーヤ３０８は、プロセッサ３０１によって実装できる。異なるプロセッサを使用して、異なる構成要素を実装することができる（例えば、１つのプロセッサは変換モジュール３１６を実装することができ、別のプロセッサを使用して未知のプレーヤ３０４を実装することができ、さらに別のプロセッサを使用して既知のプレーヤ３０８を実装することができる）。
【００２６】
図４は、オーディオプレーヤにおいてマルチリージョン機器サポートおよび可変ルートノートサポートを提供するためのシステム４００の別の構成を例示するブロック図である。システム４００は、未知のプレーヤ４０４と既知のプレーヤ４０８とを含むことができる。例えば、未知のプレーヤ４０４は、各機器に対してシングルリージョン機器および固定のルートノートをのみサポートするプレーヤとすることができる。既知のプレーヤ４０８は、マルチリージョン機器および可変ルートノートをサポートすることができる。したがって、変換モジュール４１６がなければ、未知の出力４１２は既知の出力４１４と類似にならない。
【００２７】
未知のプレーヤ４０４はファイルパーサ４０２を含むことができる。ファイルパーサ４０２は音楽ファイル４１０に対応することができる。例えば、音楽ファイル４１０がＸＭＦファイルである場合、ファイルパーサ４０２はＸＭＦパーサとすることができる。ファイルパーサ４０２は、音楽ファイル４１０をプレーヤ固有のデータに変換することができる。例えば、未知のプレーヤ４０４がＳＭＡＦプレーヤである場合、ファイルパーサ４０２は、音楽ファイル４１０を特にＳＭＡＦフォーマットに変換することができる。また、ファイルパーサ４０２は、シンセサイザ４０５の関係するパラメータを変換モジュール４１６に通知することができる。例えば、パーサ４０２は、シンセサイザ４０５が固定のルートノートをのみサポートすること、またはシンセサイザ４０５がマルチリージョン機器をサポートしないことを変換モジュール４１６に伝えることができる。
【００２８】
変換モジュール４１６は、未知のプレーヤ４０４および既知のプレーヤ４０８から類似の出力を生成するために、データの中でもファイルパーサ４０２からの情報を使用して音楽ファイル４１０を修正することができる。これは、未知のプレーヤ４０４がマルチリージョン機器を使用してノートを正しくプレイするように、音楽ファイル４１０を修正することを含むことができる。これを行うために、リージョンコンバータ４２０は、音楽ファイル４１０中のすべてのマルチリージョン機器をシングルリージョン機器にマッピングすることができる。リージョントランスレータ４１８は、次いで、サポートされていないマルチリージョン機器ではなくシングルリージョン機器がプレイされるように、音楽ファイル４１０中のＭＩＤＩデータを調整することができる。これは、１つまたは複数のプログラム変更コマンドを音楽ファイル４１０に挿入することを含むことができる。そうすることによって、マルチリージョン機器を使用するノートは、さもなければマルチリージョン機器をサポートすることができない未知のプレーヤ４０４上で正しくプレイすることができる。
【００２９】
さらに、変換モジュール４１６は、さもなければ可変ルートノートをサポートすることができない未知のプレーヤ４０４において可変ルートノートサポートを提供することができる。これは、未知のプレーヤ４０４がユーザ定義ルートノートを使用してノートを正しくプレイするように、音楽ファイル４１０を修正することを含むことができる。これを行うために、ノートトランスレータは、シンセサイザ４０５によってサポートされる固定のルートノートと各ＭＩＤＩノートで使用される機器リージョン中のルートノートとの差を決定することができる。ノートトランスレータ４２２は、次いで、未知のプレーヤ４０４が可変ルートノートをもつ音楽ファイル４１０を正しくプレイするように、音楽ファイル４１０中の各ＭＩＤＩノートを同じ差によって調整することができる。シンセサイザ４０５は、入力としてＭＩＤＩノートを受け取り、出力波形を生成することができる。
【００３０】
変換モジュール４１６は、未知のプレーヤ４０４にマルチリージョンサポートおよび／または可変ルートノートサポートの両方を提供することができるが、変換モジュール４１６の一部のみを実装することができることに留意されたい。言い換えれば、未知のプレーヤ４０４が可変ルートノートをサポートし、マルチリージョン機器をサポートしない場合、変換モジュール４１６はノートトランスレータ４２２を含まなくてもよい。同様に、未知のプレーヤ４０４がマルチリージョン機器をサポートし、可変ルートノートをサポートしない場合、変換モジュール４１６はリージョントランスレータ４１８およびリージョンコンバータ４２０を含まなくてもよい。
【００３１】
図５は、オーディオプレーヤにおいてマルチリージョン機器サポートを提供するためのシステム５００を例示するブロック図である。前述のように、ＭＩＤＩデータ５２４とユーザ定義機器データ５２６とを含む音楽ファイル５１０を受け取る未知のプレーヤ５０４および既知のプレーヤ５０８がある。未知のプレーヤ５０４はマルチリージョン機器５４２をサポートすることができない。ＭＩＤＩデータ５２４は１つまたは複数のＭＩＤＩノート５２８を含むことができ、各ＭＩＤＩノート５２８は、データの中でも、機器番号５３０とキー番号５３２とを含む。機器番号５３０は、ＭＩＤＩノート５２８をプレイするときに、どの機器定義５３４を使用すべきかをシンセサイザに示すことができ、キー番号５３２はＭＩＤＩノート５２８のピッチを示すことができる。本明細書で使用する「機器定義」という用語は、オーディオプレーヤが出力を生成するために使用する電子ファイルまたはデータのセットを指す。「機器定義」と「機器」という用語は、本明細書では互換的に使用されることがある。
【００３２】
音楽ファイル５１０はまた、ＭＩＤＩデータ５２４中の各機器の機器定義５３４を含むＤＬＳファイルとすることができるユーザ定義機器データ５２６を含むことができる。ＤＬＳフォーマットは、各機器定義５３４が複数のリージョン５３６を有することを可能にする。各リージョン５３６は、シンセサイザ５０５が予測可能な方法で音楽ファイル５１０をプレイするのを助ける他のパラメータ５３７をも含むことができる。これらのパラメータ５３７は、ルートノート、波形、ボリュームレベル、ボリュームエンベロープパラメータ（アタックレート、ディケイレート、リリースレート）、ピッチエンベロープパラメータ（アタックレート、ディケイレート、リリースレート）、時間的に変化するフィルタパラメータなどを含むことができる。ルートノートは、修正されていない波形が関連付けられるノートとすることができる。言い換えれば、ルートノートがプレイされるように選択された場合、プレーヤは、リージョンに関連する波形をピッチ修正なしに出力することができる。各機器定義５３４はまた、シンセサイザ５０５がＭＩＤＩデータ５２４中の機器番号５３０に基づいて正しいパラメータを使用することができるように、機器番号５３０を含むことができる。
【００３３】
企業固有またはプレーヤ固有であるいくつかのファイルフォーマットは、２つ以上のリージョン５３６をもつ機器定義５３４をサポートしないことがある。シングルリージョンプレーヤ用のオーサリングツールは、そのような機器定義５３４を処理することができないことを示すエラーをスローする。代替的に、オーサリングツールは、機器定義５３４内のキーの範囲全体について第１のリージョン５３６を使用する。いずれの場合も、未知の出力５１２は予想通りには聞こえない。
【００３４】
シングルリージョンプレーヤによってＤＬＳファイルをサポートするために、音楽ファイル５１０中の任意の複数のリージョン機器５３４を（１つまたは複数の）シングルリージョン機器として表す必要がある。これは、マルチリージョン機器の機器定義５３４をシングルリージョン機器にマッピングすることを必要とし、マッピングに基づくＭＩＤＩデータ５２４への変更をも必要とすることがある。特に、ＭＩＤＩデータ５２４中の機器番号５３０を変更することができる。この技法について以下で説明する。
【００３５】
第１に、ファイルパーサ５０２は、音楽ファイル５１０を受け取り、それをＭＩＤＩデータ５２４とユーザ定義機器データ５２６との２つの部分に分割する。ユーザ定義機器パーサ５４０は、次いで、ユーザ定義機器データ５２６中の複数のリージョンをもつすべての機器５３４を識別し、マルチリージョン機器のリストを記憶する。ＭＩＤＩプレーヤ５３８は、さらにＭＩＤＩデータ５２４をパースする。同様に、ユーザ定義機器パーサ５４０は、ユーザ定義機器データ５２６をパースし、波形定義を用いて機器５４２を作成する。例えば、音楽ファイル５１０がＸＭＦファイルである場合、ファイルパーサ５０２はＸＭＦパーサとすることができ、音楽ファイル５１０をプレーヤ固有のデータに変換することができる。未知のプレーヤ５０４がＳＭＡＦプレーヤである場合、ファイルパーサ５０２はＭＩＤＩデータ５２４をＳＭＡＦフォーマットに変換することができる。代替的に、または追加として、変換モジュール５１６によって音楽ファイル５１０をプレーヤ固有のフォーマットに変換する。また、ファイルパーサ５０２は、シンセサイザ５０５がマルチリージョン機器５４２をサポートするかどうかなど、シンセサイザ５０５の関係するパラメータを変換モジュール５１６に通知する。
【００３６】
第２に、変換モジュール５１６中のリージョンコンバータ５２０は、マルチリージョン機器定義５４２をシングルリージョン機器定義５４８にマッピングする。これは、元の機器定義５３４中でマッピングされたリージョンと同じパラメータ５３７を有する新しいシングルリージョン機器定義５４８を作成することを含む。言い換えれば、リージョンコンバータ５２０は、マルチリージョン機器定義５３４中にある全リージョンと同じ数の新しいシングルリージョン機器定義５４８を作成する。例えば、ユーザ定義機器データ５２６中に５つの機器定義５３４があり、各機器定義５３４が２つのリージョン５３６を有する場合、リージョンコンバータ５２０は１０個のシングルリージョン機器定義５４８を作成する。これらの新しいシングルリージョン機器定義５４８は、メモリまたは他の適切な記憶媒体５４６に記憶できる。マルチリージョン機器定義５３４中のリージョン５３６と同じパラメータ５３７をシングルリージョン機器定義５４８中に維持することができる。
【００３７】
第３に、リージョンコンバータ５２０は、まだユーザ定義機器データ５２６中で使用されていない機器番号５４５を割り当てる。これは、ユーザ定義機器データ５２６から１つまたは複数の番号を再使用することを含むことができる。リージョンコンバータ５２０は、このマッピングを行うために、テーブル５４４または何らかの他のデータ構造を利用することができる。例えば、テーブル５４４は、図示のように、マルチリージョン機器番号５３０をシングルリージョン機器番号５４５にマッピングすることができ、機器１のリージョン１を新しい機器１にマッピングし、機器１のリージョン２を新しい機器２にマッピングし、機器２のリージョン１を機器３にマッピングし、機器２のリージョン２を機器４にマッピングし、機器３のリージョン１を機器５にマッピングする。１つまたは複数のマルチリージョン機器番号５３０はシングルリージョン機器番号５４５として再使用できること、例えば、マルチリージョン機器１のリージョン１はシングルリージョン機器１にマッピングできることに留意されたい。ＭＩＤＩは機器番号０〜１２７をのみサポートするので、このマッピングはサポートされる機器番号５３０のすべてを使用することがある。利用可能な機器番号５３０がバンク中にない場合、機器の新しいバンクを作成し、同じ手順に従うことができる。マッピングおよび機器番号５３０割当ては、システム５００において１回だけ行われる。
【００３８】
第４に、リージョントランスレータ５１８によってＭＩＤＩデータ５２４を調整する。これは、新しい機器番号５４５が割り当てられた機器を使用するＭＩＤＩノート５２８を探索することを含む。ノート５２８がノートオンまたはノートオフメッセージである場合、ノート５２８がシンセサイザ５０５に送られる前にプログラム変更コマンド５１９を挿入する。例えば、リージョントランスレータ５１８が、以前２つのシングルリージョン機器０ｘ１０および０ｘ２０にマッピングされていた、機器０ｘ１０の第２のリージョンに対するノートオンメッセージを発見した場合、リージョントランスレータ５１８は、ノート５２８を送る前にプログラム変更コマンド５１９を０ｘ２０に送ることができる。しかしながら、連続するノートオンメッセージ５２８のための別のプログラム変更コマンド５１９を同じリージョン５３６に送る必要はない。同様に、連続するノートオンメッセージ５２８のための別のプログラム変更コマンド５１９を同じリージョン５３６に送る必要はない。さらに、ノート５２８によって使用されるマッピングされたシングルリージョン機器定義５４８が機器の異なるバンク中にある場合、ノートオンまたはノートオフメッセージ５２８の前にバンク変更コマンド５１９を送ることができる。チャネルボリュームのようなチャネル固有のメッセージの場合、元の機器５３４がプレイされているすべてのチャネルに対してメッセージ５２８を反映するために、同じメッセージ５２８を複数回繰り返すことができる。
【００３９】
最後に、シングルリージョン機器定義５４８とＭＩＤＩデータ５２４とを調整された音楽ファイル５５０に統合する。調整された音楽ファイル５５０は、シンセサイザ５０５が未知の出力５１２を生成するために直接使用するシンセサイザ固有のフォーマットとすることができる。同様に、既知の出力５１４を生成するために既知のプレーヤ５０８によってプレイされる前に音楽ファイル５１０を変換することができる。１つの構成では、ファイルパーサ５０２ではなく変換モジュール５１６は、ＭＩＤＩデータ５２４をプレーヤ固有のＭＩＤＩデータに変換し、ユーザ定義機器データ５２６をプレーヤ固有のユーザ定義機器データに変換し、それらを調整された音楽ファイル５５０に統合する。プレーヤ固有のＭＩＤＩデータは変更コマンドを含むことができ、プレーヤ固有のユーザ定義機器データはシングルリージョン機器定義５４８を含むことができる。
【００４０】
システム５００がノートまたはファイルごとに動作することができることに留意されたい。ノートごとの動作では、シングルリージョン機器定義５４８をマッピングし、保存し、次いで、すべてのＭＩＤＩノート５２８が探索される前に、各ＭＩＤＩノート５２８を適用可能な変更コマンド５１９とともにシンセサイザ５０５に送る。代替的に、または追加として、すべてのＭＩＤＩノート５２８を探索し、ＭＩＤＩノート５２８がシンセサイザ５０５に送られる前に、適用可能なプログラム変更コマンド５１９をＭＩＤＩデータ５２４に挿入する。
【００４１】
図６は、オーディオプレーヤにおいてマルチリージョン機器サポートを提供するためのシステム６００の別の構成を例示するブロック図である。前述のように、ＭＩＤＩデータ６２４とユーザ定義機器データ６２６とを含む音楽ファイル６１０は、変換モジュール６１６を使用して調整される。ＭＩＤＩデータ６２４はＭＩＤＩノート６２８を含むことができ、各ＭＩＤＩノート６２８は、特にノート６２８の機器番号６３０とノート６２８のキー番号６３２とを含む。ユーザ定義機器データ６２６は、機器定義６３４に関連する１つまたは複数のリージョン６３６と機器番号６３０とを含む機器定義６３４を含むことができる。各リージョン６３６は、ルートノートや波形などの他のパラメータ６３７を含むことができる。
【００４２】
変換モジュール６１６中のリージョンコンバータ６２０は、音楽ファイル６１０中のマルチリージョン機器６３４をシングルリージョン機器定義６４８にマッピングすることができる。リージョンコンバータ６２０は、テーブル６４４または他のデータ構造を使用して、各シングルリージョン機器６４８に新しい機器番号６４５を割り当てることができる。さらに、各シングルリージョン機器中のリージョン６３６は、音楽ファイル６１０中に含まれるパラメータと同じパラメータ６３７を含むことができる。
【００４３】
リージョントランスレータ６１８は、新たにマッピングされた機器６４８を使用するノート６２８の前に挿入できる、プログラム変更コマンドやバンク変更コマンドなどの変更コマンド６１９を含むことができる。例えば、リージョントランスレータ６１８が、以前２つのシングルリージョン機器０ｘ１０および０ｘ２０にマッピングされていた、機器０ｘ１０の第２のリージョンに対するノートオンメッセージを発見した場合、リージョントランスレータ６１８は、ノート６２８を送る前にプログラム変更コマンド６１９を０ｘ２０に送ることができる。
【００４４】
変換モジュール６１６は、ＭＩＤＩデータ６２４をプレーヤ固有のＭＩＤＩデータ６２５に変換し、ユーザ定義機器データ６２６をプレーヤ固有のユーザ定義機器データ６２７に変換し、それらを調整された音楽ファイル６５０に統合することができる。プレーヤ固有のＭＩＤＩデータ６２５は、適切な場合、挿入される変更コマンド６１９を含むことができ、プレーヤ固有のユーザ定義機器データ６２７は、新しい機器番号６４５をもつシングルリージョン機器定義６４８を含むことができる。調整された音楽ファイル６５０はまた、メモリ６４６または別の適切な記憶媒体に記憶できる。
【００４５】
次いで、調整された音楽ファイル６５０を、さもなければマルチリージョン機器６３４をサポートすることができない未知のプレーヤ６０４に送ることができる。しかしながら、変換モジュール６１６を用いて、未知の出力６１２を、既知のプレーヤ６０８からの既知の出力６１４と類似にすることができる。ここでは、未知のプレーヤ６０４が調整されたファイル６５０をプレイする前に、調整された音楽ファイル６５０全体を統合し、保存する、ファイルごとの動作が示されていることに留意されたい。しかしながら、システム６００はノートごとに動作することもできる。言い換えれば、調整された音楽ファイル６５０を未知のプレーヤ６０４に送る前に、ＭＩＤＩデータ６２４中のすべての適用可能な変更コマンド６１９を挿入するのではなく、変換モジュール６１６は、ノート６２８を受け取り、ノート６２８に対する適用可能な変更コマンド６１９を挿入しながら、ノート６２８を未知のプレーヤ６０４に送ることができる。
【００４６】
図７は、オーディオプレーヤにおいてマルチリージョン機器サポートを提供するための方法７００を例示する流れ図である。例えば、本方法を実装して、さもなければマルチリージョン機器６３４をサポートすることができない未知のプレーヤ６０４が、マルチリージョン機器６３４をもつ音楽ファイル６１０をプレイすることを可能にすることができる。方法７００は変換モジュール６１６によって実行できる。変換モジュール６１６は、ユーザ定義機器６３４のセット中の少なくとも１つのマルチリージョン機器６３４を識別（７５２）する。モジュール６１６は、次いで、各マルチリージョン機器６３４の各リージョン６３６を、リージョン６３６と同じパラメータ６３７をもつシングルリージョン機器６４８にマッピング（７５４）する。
【００４７】
モジュール６１６は、次いで、各シングルリージョン機器６４８に新しい機器番号６４５を割り当てる（７５６）。新しい機器番号６４５は、マルチリージョン機器６３４の１つまたは複数の機器番号６３０を再使用することができ、例えば、マルチリージョン機器１のリージョン１をシングルリージョン機器１にマッピングすることができる。利用可能な機器番号６３０がバンク中にない場合、機器の新しいバンクを作成し、同じ手順に従うことができる。
【００４８】
次に、マッピング７５４および割当て７５６に基づいてＭＩＤＩデータ６２４を修正（７５８）する。言い換えれば、プレーヤ６０４またはシンセサイザ６０５が正しいシングルリージョン機器定義６４８を、受け取ったノート６２８に関連付けることを可能にするために、ＭＩＤＩデータ６２４を修正することができる。この修正７５８は、１つまたは複数のノート６２８の前に変更コマンド６１９を挿入することを含むことができる。例えば、変換モジュール６１６が、以前２つのシングルリージョン機器０ｘ１０および０ｘ２０にマッピングされていた、機器０ｘ１０の第２のリージョン６３６に対するノートオンメッセージを発見した場合、変換モジュール６１６は、ノート６２８を送る前にプログラム変更コマンド６１９を０ｘ２０に送ることができる。最後に、マッピングされたシングルリージョン機器６４８と修正ＭＩＤＩデータ６２４とをプレーヤ固有である調整された音楽ファイル６５０に統合（７６０）する。これは、ＭＩＤＩデータ６２４をプレーヤ固有のＭＩＤＩデータ６２５に変換し、ユーザ定義機器データ６２６をプレーヤ固有のユーザ定義機器データ６２７に変換してから、それらを調整された音楽ファイル６５０に統合することを含むことができる。
【００４９】
上記の図７の方法７００は、図７Ａに示すミーンズプラスファンクションブロック７００Ａに対応する様々なハードウェア、および／または１つまたは複数のソフトウェア構成要素、および／または１つまたは複数のモジュールによって実行される。言い換えれば、図７に示すブロック７５２〜７６０は、図７Ａに示すミーンズプラスファンクションブロック７５２Ａ〜７６０Ａに対応する。
【００５０】
図８は、オーディオプレーヤにおいて可変ルートノートサポートを提供するためのシステム８００を例示するブロック図である。これは、さもなければ可変ルートノート８６２をサポートしないであろう未知のプレーヤ８０４の内部でＭＩＤＩデータ８２４を調整する変換モジュール８１６を含むことができる。ＤＬＳなど、いくつかのファイルフォーマットは、ユーザが、機器リージョン８３６中の任意のノート８２８を、そのリージョン８３６のルートノート８６２として定義できるようにすることができる。ルートノート８６２は、修正されていない波形８６４が関連付けられるノートとすることができる。言い換えれば、ルートノート８６２がプレイされるように選択された場合、未知のプレーヤ８０４は、リージョン８３６に関連する波形８６４をピッチ修正なしに出力することができる。しかしながら、非ルートノートがプレイされるように選択された場合、所望の出力を達成するために波形８６４のピッチを変更することができる。また、ルートノート８６２の場合でも、波形８６４に対する変調または他の非ピッチ修正があることがある。例えば、以下で説明するように、様々なサンプリング周波数を捕らえるために波形８６４をリサンプリングすることができる。
【００５１】
音楽ファイル８１０は、ＭＩＤＩノート８２８を含むＭＩＤＩデータ８２４を含むことができ、各ＭＩＤＩノート８２８は、機器番号８３０とキー番号８３２とをもつ。機器番号８３０は、シンセサイザ８０５を、機器を表すために使用されるパラメータのセットに関連付けることができる。キー番号８３２は、ノート８２８のピッチを示す番号とすることができ、例えば、中央Ｃはキー番号８３２の「６０」で表すことができ、本明細書ではキー番号を「Ｎ」で示す。
【００５２】
音楽ファイル８１０はまた、機器定義８３４を含むユーザ定義機器データ８２６を含むことができ、各機器定義８３４は、１つまたは複数のリージョン８３６をもつ。ユーザ定義ルートノート（ＲＮ）８６２は、修正されていない波形８６４が関連付けられるノートとすることができる。各波形８６４は、波形８６４がサンプリングされたサンプリング周波数（Ｆｗ）８６６を有することができる。
【００５３】
ＭＩＤＩプレーヤ８３８の出力サンプリング周波数（Ｆｓ）８６８が、プレイすべきノート８２８の波形８６４のサンプリング周波数（Ｆｗ）８６６と異なる場合、ＭＩＤＩプレーヤ８３８は波形８６４をリサンプリングすることができる。リサンプリング比はＦｗ／Ｆｓとすることができる。特定のリージョン８３６中の非ルートノートをプレイするとき、ＭＩＤＩプレーヤ８３８は波形８６４をリサンプリングすることができる。したがって、ユーザ定義ルートノート８６２をサポートするＭＩＤＩプレーヤ８３８のリサンプリング比は、以下によって与えられる。
【数１】
2011511308.tif 000003
【００５４】
一般に、ＭＩＤＩプレーヤ８３８がリサンプリングに起因するひずみを最小限に抑えることができるように、プレイされているＭＩＤＩノート８２８をルートノート８６２の周りに集中させることができる。リサンプリングはシンセサイザ８０５において行うことができる。
【００５５】
しかしながら、ウェーブテーブル合成を使用してユーザ定義機器８３４をサポートするいくつかのオーディオプレーヤ８０４は、ユーザ定義ルートノート８６２をサポートすることができない。代わりに、プレーヤ８０４は固定のルートノート（ＲＰ）８７２を使用することができる。固定のルートノート（ＲＰ）８７２は、機器定義８３４中に記述されず、どこかに保存されるのではなく、プレーヤ８０４に内部にあり、例えば、ＲＰ８７２はシンセサイザ８０５のプロパティとすることができる。未知のプレーヤ８０４が固定のルートノート８７２以外のＭＩＤＩノート８２８をプレイする場合、以下の式に従って波形８６４をリサンプリングすることができる。
【数２】
2011511308.tif 000004
【００５６】
未知のプレーヤ８０４においてユーザ定義機器８３４をサポートするために、機器８３４をプレーヤ固有のフォーマットにマッピングすることができる。未知のプレーヤ８０４はユーザ定義ルートノート８６２ではなく固定のルートノート８７２を使用するので、有効リサンプリング比が同じままであるようにキー番号（Ｎ）８３２を調整することができる。
【００５７】
ファイルパーサ８０２は音楽ファイル８１０に対応することができる。例えば、音楽ファイル８１０がＸＭＦファイルである場合、ファイルパーサ８０２はＸＭＦパーサとすることができる。ファイルパーサ８０２は、音楽ファイル８１０をプレーヤ固有のデータに変換することができる。詳細には、ＭＩＤＩプレーヤ８３８は、ＭＩＤＩデータ８２４をプレーヤ固有のＭＩＤＩデータ８２５に変換することができる。同様に、ユーザ定義機器パーサ８４０も、ユーザ定義機器データ８２６を、後でプレーヤ固有のＭＩＤＩデータ８２５に統合できるプレーヤ固有のユーザ定義機器データ８２７に変換することができる。
【００５８】
また、ファイルパーサ８０２は、シンセサイザ８０５の関係するパラメータを変換モジュール８１６に通知することができる。例えば、パーサ８０２は、各ＭＩＤＩ機器８３４の固定のルートノート８７２に関する情報を含むことができる。同様に、ＭＩＤＩプレーヤ８３８は、出力サンプリング周波数（Ｆｓ）８６８に関する情報を含むことができる。
【００５９】
ユーザ定義機器パーサ８４０は、機器定義８３４からユーザ定義ルートノート８６２のアレイを抽出し、メモリまたは別の適切な記憶媒体８４６に記憶することができる。変換モジュール８１６は、ルートノート８６２のアレイを使用して、ＭＩＤＩデータ８２４中のキー番号（Ｎ）８３２を調整することができる。代替的に、ルートノート８６２を任意のタイプのデータ構造として記憶することができる。
【００６０】
ノートトランスレータ８２２中のキー番号ジェネレータ８７４は、次いで、リサンプリングの後でも正しいピッチがプレイされるように、各ＭＩＤＩノート８２８の新しいキー番号（Ｎ’）８７０を発生することができる。例として、ユーザ定義ルートノート（ＲＮ）８６２をもつ機器リージョン上のノート（Ｎ）８２８をプレイしようとしていると仮定する。さらに、プレーヤ固有のファイルフォーマットが固定のルートノート（ＲＰ）８７２を用いると仮定する。変換モジュール８１６がなければ、ＭＩＤＩプレーヤ８３８は、２＾（Ｎ−ＲＮ）／１２＊Ｆｗ／Ｆｓのリサンプリング比を採用しようとする。しかしながら、未知のプレーヤ８０４が固定のルートノート８７２をのみサポートするので、ＭＩＤＩプレーヤ８３８は、代わりに２＾（Ｎ−ＲＰ）／１２＊Ｆｗ／Ｆｓのリサンプリング比を採用する。これは、ピッチ差をもたらし、したがって、未知の出力８１２は既知の出力８１４とは異なって聞こえる。
【００６１】
これを緩和するために、プレーヤ固有のファイルフォーマットを書き込みながら、ノートトランスレータ８２２は、使用されるリサンプリング比が前と同じになるように、ＭＩＤＩノート８２８のキー番号（Ｎ）８３２をずらすことができる。ノートトランスレータ８２２は、音楽ファイル８１０中のキー番号（Ｎ）８３２を新しいキー番号（Ｎ’）８７０と交換することができ、Ｎ’＝Ｎ＋ＲＰ−ＲＮである。この新しいキー番号（Ｎ’）８７０を使用して、ノートトランスレータ８２２が採用するリサンプリング比は、
【数３】
2011511308.tif 000005
【００６２】
であり、これは、
【数４】
2011511308.tif 000006
【００６３】
と等価であり、これは、所要のリサンプリング比である
【数５】
2011511308.tif 000007
【００６４】
と等価である。したがって、ノートトランスレータ８２２において計算された新しいキー番号（Ｎ’）８７０を、ＭＩＤＩノート８２８のキー番号（Ｎ）８３２と置換することによって、式（５）に示すように、リサンプリング比を自動的に調整することができる。
【００６５】
次いで、プレーヤ固有のＭＩＤＩデータ８２５とプレーヤ固有のユーザ定義機器データ８２７とを調整された音楽ファイル８５０に統合することができる。次いで、調整された音楽ファイル８５０を、さもなければユーザ定義ルートノート８６２をサポートすることができない未知のプレーヤ８０４に送ることができる。しかしながら、変換モジュール８１６を用いて、未知の出力８１２を、既知のプレーヤ８０８からの既知の出力８１４と類似にすることができる。
【００６６】
システム８００がノートまたはファイルごとに動作することができることに留意されたい。ノートごとの動作では、ノートトランスレータ８２２が各ノート８２８を受け取るときに新しいキー番号（Ｎ’）８７０を決定し、次いで、すべてのＭＩＤＩノート８２８が調整される前に、各ＭＩＤＩノート８２８を新しいキー番号（Ｎ’）８７０とともにシンセサイザ８０５に送ることができる。代替的に、または追加として、ＭＩＤＩノート８２８がシンセサイザ８０５に送られる前に、すべてのＭＩＤＩノート８２８を新しいキー番号（Ｎ’）８７０で調整することができる。
【００６７】
図９は、オーディオプレーヤにおいて可変ルートノートサポートを提供するためのシステム９００の別の構成を例示するブロック図である。前述のように、ＭＩＤＩデータ９２４とユーザ定義機器データ９２６とを含む音楽ファイル９１０は、変換モジュール９１６を使用して調整できる。ＭＩＤＩデータ９２４はＭＩＤＩノート９２８を含むことができ、各ＭＩＤＩノート９２８は、特にノート９２８の機器番号９３０とノート９２８のキー番号（Ｎ）９３２とを含む。ユーザ定義機器データ９２６は、１つまたは複数のリージョン９３６を含む機器定義９３４を含むことができる。各リージョン９３６は、ルートノート（ＲＮ）９６２、およびサンプリング周波数（Ｆｗ）９６６をもつ波形９６４など、他のパラメータを含むことができる。
【００６８】
変換モジュール９１６中のノートトランスレータ９２２は、Ｎ９３２、ＲＰ９７２、および−ＲＮ９６２を合計するキー番号ジェネレータ９７４を使用して、新しいキー番号（Ｎ’）９７０を発生することができ、ＲＰ９７２は、各ノート９２８によって使用される機器９３４の固定のルートノート９７２である。ユーザ定義ルートノート（ＲＮ）９６２のアレイは、メモリまたは他の適切な記憶媒体９４６に記憶できる。さらに、変換モジュール９１６は、固定のルートノート（ＲＰ）９７２を決定するために未知のプレーヤ９０４と通信することができる。
【００６９】
変換モジュール９１６は、ＭＩＤＩデータ９２４をプレーヤ固有のＭＩＤＩデータ９２５に変換し、ユーザ定義機器データ９２６をプレーヤ固有のユーザ定義機器データ９２７に変換し、それらを調整された音楽ファイル９５０に統合することができる。プレーヤ固有のＭＩＤＩデータ９２５は、キー番号（Ｎ）９３２の代わりに新しいキー番号（Ｎ’）９７０を含むことができる。調整された音楽ファイル９５０は、同じくメモリまたは別の適切な記憶媒体９４６に記憶できる。
【００７０】
次いで、調整された音楽ファイル９５０を、さもなければユーザ定義ルートノート９６２をサポートすることができない未知のプレーヤ９０４に送ることができる。しかしながら、変換モジュール９１６を用いて、未知の出力９１２を、既知のプレーヤ９０８からの既知の出力９１４と類似にすることができる。ここでは、未知のプレーヤ９０４が調整されたファイル９５０をプレイする前に、調整された音楽ファイル９５０全体を統合し、保存する、ファイルごとの動作が示されていることに留意されたい。しかしながら、システム９００はノートごとに動作することもできる。言い換えれば、調整された音楽ファイル９５０を未知のプレーヤ９０４に送る前に、ＭＩＤＩデータ９２４中のすべてのキー番号（Ｎ）９３２を新しいキー番号（Ｎ’）９７０と交換するのではなく、変換モジュール９１６は、ノート９２４を受け取り、キー番号（Ｎ）９３２を新しいキー番号（Ｎ’）９７０と交換しながら、ノート９２４を未知のプレーヤ９０４に送ることができる。
【００７１】
図１０は、オーディオプレーヤにおいて可変ルートノートサポートを提供するための方法１０００を例示する流れ図である。例えば、方法１０００を実装して、さもなければユーザ定義ルートノート９６２をサポートすることができない未知のプレーヤ９０４が、ユーザ定義ルートノート９６２をもつ音楽ファイル９１０をプレイすることを可能にすることができる。方法１０００は変換モジュール９１６によって実行できる。変換モジュール９１６は、ＭＩＤＩデータ９２４とユーザ定義機器９３４とをもつ音楽ファイル９１０を受け取る（１０７６）。次いで、機器定義９３４をプレーヤ固有の定義９２７に変換（１０７８）する。変換モジュール９１６は、各機器９３４のユーザ定義ルートノート９６２をアレイなどのデータ構造に記憶（１０８０）する。各ノートのＮ９３２、ＲＰ９７２、およびＲＮ９６２を使用して新しいキー番号（Ｎ’）９７０を決定（１０８１）し、例えば、Ｎ’＝Ｎ＋ＲＰ−ＲＮである。変換モジュール９１６は、次いで、新しいキー番号（Ｎ’）９７０に基づいてＭＩＤＩデータ９２４中の１つまたは複数のノート９２８を調整（１０８２）する。言い換えれば、キー番号（Ｎ）９３２を新しいキー番号（Ｎ’）９７０と交換する。次いで、ＭＩＤＩデータ９２４をプレーヤ固有のＭＩＤＩデータ９２５に変換（１０８４）する。最後に、プレーヤ固有のＭＩＤＩデータ９２５とプレーヤ固有の機器定義９２７とを調整された音楽ファイル９５０に統合（１０８６）する。
【００７２】
上記の図１０の方法１０００は、図１０Ａに示すミーンズプラスファンクションブロック１０００Ａに対応する様々なハードウェア、および／または１つまたは複数のソフトウェア構成要素、および／または１つまたは複数のモジュールによって実行される。言い換えれば、図１０に示すブロック１０７６〜１０８６は、図１０Ａに示すミーンズプラスファンクションブロック１０７６Ａ〜１０８６Ａに対応する。
【００７３】
図１１は、オーディオプレーヤにマルチリージョン機器サポートおよび可変ルートノートサポートを提供するためのシステム１１００を例示するブロック図である。前述のように、ＭＩＤＩデータ１１２４とユーザ定義機器データ１１２６とを含む音楽ファイル１１１０は、変換モジュール１１１６を使用して調整できる。ＭＩＤＩデータ１１２４はＭＩＤＩノート１１２８を含むことができ、各ＭＩＤＩノート１１２８は、特にノート１１２８の機器番号１１３０とノート１１２８のキー番号（Ｎ）１１３２とを含む。ユーザ定義機器データ１１２６は、機器定義１１３４に関連する１つまたは複数のリージョン１１３６と機器番号１１３０とを含む機器定義１１３４を含むことができる。各リージョン１１３６は、ルートノート（ＲＮ）１１６２、およびサンプリング周波数（Ｆｗ）１１６６をもつ波形１１６４など、他のパラメータを含むことができる。
【００７４】
最初に、変換モジュール１１１６は、音楽ファイル１１１０中のマルチリージョン機器１１３４をシングルリージョン機器定義１１４８にマッピングすることができる。リージョンコンバータ１１２０は、テーブル１１４４または他のデータ構造を使用して、各シングルリージョン機器１１４８に新しい機器番号１１４５を割り当てることができる。さらに、各シングルリージョン機器１１４８中のリージョン１１３６は、音楽ファイル１１１０中に含まれるルートノートおよび波形と同じルートノート１１６２および波形１１６４を含むことができる。
【００７５】
リージョントランスレータ１１１８は、新たにマッピングされた機器１１４８を使用するノート１１２８の前に挿入できる、プログラム変更コマンドやバンク変更コマンドなどの変更コマンド１１１９を含むことができる。挿入された変更コマンド１１１９をもつＭＩＤＩデータ１１２４を、シングルリージョン機器１１４８とともに、調整された音楽ファイル１１５０に統合し、メモリまたは別の適切な記憶媒体１１４６に記憶することができる。
【００７６】
次に、ノートトランスレータ１１２２は、Ｎ１１３２、ＲＰ１１７２、および−ＲＮ１１６２を合計するキー番号ジェネレータ１１７４を使用して、新しいキー番号（Ｎ’）１１７０を発生することができ、ＲＰ１１７２は、各ノート１１２８によって使用される機器の固定のルートノート１１７２である。言い換えれば、Ｎ’＝Ｎ＋ＲＰ−ＲＮである。すべてのリージョンを表すユーザ定義ルートノート（ＲＮ）１１６２のアレイは、メモリまたは他の適切な記憶媒体１１４６に記憶できる。さらに、変換モジュール１１１６は、固定のルートノート（ＲＰ）１１７２を決定するために未知のプレーヤ１１０４と通信することができる。
【００７７】
変換モジュール１１１６は、ＭＩＤＩデータ１１２４をプレーヤ固有のＭＩＤＩデータ１１２５に変換し、ユーザ定義機器データ１１２６をプレーヤ固有のユーザ定義機器データ１１２７に変換し、それらを調整された音楽ファイル１１５０に統合することができる。プレーヤ固有のＭＩＤＩデータ１１２５は、キー番号（Ｎ）１１３２の代わりに新しいキー番号（Ｎ’）１１７０ならびに変更コマンド１１１９を含むことができる。プレーヤ固有のユーザ定義機器データ１１２７は、新しい機器番号１１４５をもつシングルリージョン機器定義１１４８を含むことができる。調整された音楽ファイル１１５０は、同じくメモリまたは別の適切な記憶媒体１１４６に記憶できる。
【００７８】
次いで、調整された音楽ファイル１１５０を、さもなければマルチリージョン機器１１３４またはユーザ定義ルートノート１１６２をサポートすることができない未知のプレーヤ１１０４に送ることができる。しかしながら、変換モジュール１１１６を用いて、未知の出力１１１２を、既知のプレーヤ１１０８からの既知の出力１１１４と類似にすることができる。ここでは、未知のプレーヤ１１０４が調整されたファイル１１５０をプレイする前に、調整された音楽ファイル１１５０全体を統合し、メモリ１１４６に保存する、ファイルごとの動作が示されていることに留意されたい。しかしながら、システム１１００はノートごとに動作することもできる。言い換えれば、調整された音楽ファイル１１５０を未知のプレーヤ１１０４に送る前に、ＭＩＤＩデータ１１２４およびユーザ定義機器データ１１２６を調整するのではなく、変換モジュール１１１６は、ノート１１２８を受け取り、それらを調整しながら、ノート１１２８を未知のプレーヤ１１０４に送ることができる。
【００７９】
図１２は、オーディオプレーヤにマルチリージョン機器サポートおよび可変ルートノートサポートを提供するための方法１２００を例示する流れ図である。例えば、方法１２００を実装して、さもなければマルチリージョン機器１１３４またはユーザ定義ルートノート１１６２をサポートすることができない未知のプレーヤ１１０４が、マルチリージョン機器１１３４とユーザ定義ルートノート１１６２とをもつ音楽ファイル１１１０をプレイすることを可能にすることができる。方法１２００は変換モジュール１１１６によって実行できる。方法１２００の第１の部分は、マルチリージョンサポートを提供することを対象とすることができる。したがって、変換モジュール１１１６は、ＭＩＤＩデータ１１２４とユーザ定義機器データ１１２６とを含む音楽ファイル１１１０中の少なくとも１つのマルチリージョン機器１１３４を識別（１２９０）する。モジュール１１１６は、次いで、マルチリージョン機器１１３４の各リージョン１１３６を、リージョン１１３６と同じパラメータをもつシングルリージョン機器１１４８にマッピング（１２９１）する。これらのパラメータは、ルートノート１１６２とサンプリング周波数１１６６をもつ波形１１６４とを含むことができる。
【００８０】
モジュールは、次いで、各シングルリージョン機器１１４８に新しい機器番号１１４５を割り当てる（１２９２）。新しい機器番号１１４５は、マルチリージョン機器１１３４の機器番号１１３０を再使用しても再使用しなくてもよく、例えば、マルチリージョン機器１のリージョン１をシングルリージョン機器１にマッピングすることができる。利用可能な機器番号１１３０がバンク中にない場合、機器の新しいバンクを作成し、同じ手順に従うことができる。
【００８１】
次に、マッピング１２９１および割当て１２９２に基づいてＭＩＤＩデータ１１２４を修正（１２９３）する。言い換えれば、プレーヤ１１０４またはシンセサイザが正しいシングルリージョン機器定義１１４８を、受け取ったノート１１２８に関連付けることを可能にするために、ＭＩＤＩデータ１１２４を修正（１２９３）する。この修正１２９３は、１つまたは複数のノート１１２８の前に変更コマンド１１１９を挿入することを含むことができる。例えば、変換モジュール１１１６が、以前２つのシングルリージョン機器０ｘ１０および０ｘ２０にマッピングされていた、機器０ｘ１０の第２のリージョン１１３６に対するノートオンメッセージを発見した場合、変換モジュール１１１６は、ノート１１２８を送る前にプログラム変更コマンド１１１９を０ｘ２０に送ることができる。
【００８２】
次いで、方法１２００の残りのステップにおいて、ユーザ定義ルートノート１１６２をサポートするように音楽ファイル１１１０を修正することができる。最初に、機器定義１１３４をプレーヤ固有の定義１１２７に変換（１２９４）する。変換モジュール１１１６は、各機器１１３４のユーザ定義ルートノート１１６２をアレイなどのデータ構造に記憶（１２９５）する。変換モジュール１１１６は、各機器１１３４のユーザ定義ルートノート１１６２をアレイなどのデータ構造に記憶（１２９５）する。各ノート１１２８のＮ１１３２、ＲＰ１１７２、およびＲＮ１１６２を使用して新しいキー番号（Ｎ’）１１７０を決定（１２９６）し、例えば、Ｎ’＝Ｎ＋ＲＰ−ＲＮである。変換モジュール１１１６は、次いで、新しいキー番号（Ｎ’）１１７０に基づいてＭＩＤＩデータ１１２４中の１つまたは複数のノート１１２８を調整（１２９７）する。言い換えれば、キー番号（Ｎ）１１３２を新しいキー番号（Ｎ’）１１７０と交換する。次いで、ＭＩＤＩデータ１１２４をプレーヤ固有のＭＩＤＩデータ１１２５に変換（１２９８）する。最後に、プレーヤ固有のＭＩＤＩデータ１１２５とプレーヤ固有の機器定義１１２７とを調整された音楽ファイル１１５０に統合（１２９９）する。
【００８３】
上記の図１２の方法１２００は、図１２Ａに示すミーンズプラスファンクションブロック１２００Ａに対応する様々なハードウェア、および／または１つまたは複数のソフトウェア構成要素、および／または１つまたは複数のモジュールによって実行される。言い換えれば、図１２に示すブロック１２９０〜１２９９は、図１２Ａに示すミーンズプラスファンクションブロック１２９０Ａ〜１２９９Ａに対応する。
【００８４】
図１３は、コンピューティングデバイス／電子デバイス１３０２において利用できる様々な構成要素を例示するブロック図である。コンピューティングデバイス／電子デバイス１３０２は、音楽ファイル３１０を処理することが可能な任意のデバイス、例えば、速度トランスレータ、未知のプレーヤ３０４、または既知のプレーヤ３０８を実装することができる。したがって、ただ１つのコンピューティングデバイス／電子デバイス１３０２が示されているが、本明細書の構成は、多くのコンピュータシステムを使用する分散システムに実装できる。コンピューティングデバイス／電子デバイス１３０２は、マイクロコントローラ、ハンドヘルドコンピュータ、パーソナルコンピュータ、サーバ、メインフレーム、スーパーコンピュータ、ミニコンピュータ、ワークステーション、およびその変形体または関連するデバイスを含む広範囲のデジタルコンピュータを含むことができる。
【００８５】
コンピューティングデバイス／電子デバイス１３０２はプロセッサ１３０１およびメモリ１３０３とともに示されている。プロセッサ１３０１は、コンピューティングデバイス／電子デバイス１３０２の動作を制御することができ、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）または当技術分野で知られている他のデバイスとして具現できる。プロセッサ１３０１は一般に、メモリ１３０３内に記憶されたプログラム命令１３０４に基づいて、論理および演算動作を実行する。メモリ１３０３中の命令１３０４は、本明細書で説明する方法を実装するように実行可能である。
【００８６】
コンピューティングデバイス／電子デバイス１３０２はまた、他の電子デバイスと通信するための１つまたは複数の通信インターフェース１３０７および／またはネットワークインターフェース１３１３を含むことができる。（１つまたは複数の）通信インターフェース１３０７および（１つまたは複数の）ネットワークインターフェース１３１３は、有線通信技術、ワイヤレス通信技術、または両方に基づくことができる。
【００８７】
コンピューティングデバイス／電子デバイス１３０２はまた、１つまたは複数の入力デバイス１３０９と１つまたは複数の出力デバイス１３１１とを含むことができる。入力デバイス１３０９および出力デバイス１３１１は、ユーザ入力を可能にすることができる。コンピューティングデバイス／電子デバイス１３０２の一部として他の構成要素１３１５を設けることもできる。
【００８８】
データ１３０６および命令１３０４はメモリ１３０３に記憶できる。プロセッサ１３０１は、様々な機能を実装するために、メモリ１３０３から命令１３０４をロードし、実行することができる。命令１３０４を実行することは、メモリ１３０３に記憶されたデータ１３０６の使用を含むことができる。命令１３０４は、本明細書で示されるプロセスまたは構成のうちの１つまたは複数を実装するように実行可能であり、データ１３０６は、本明細書で説明する様々なデータの１つまたは複数を含むことができる。
【００８９】
メモリ１３０３は、電子情報を記憶することが可能な任意の電子構成要素とすることができる。メモリ１３０３は、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、磁気ディスク記憶装置媒体、光記憶媒体、ＲＡＭ中のフラッシュメモリデバイス、プロセッサに含まれるオンボードメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、ＡＳＩＣ（特定用途向け集積回路）、レジスタなどとして具現でき、それらの組合せを含む。
【００９０】
さらに、メモリ１３０３は、一般的なＭＩＤＩ機器用の基本波形を含むウェーブテーブル１３０８を記憶することができる。メモリ１３０３はまた、オーディオデバイス固有のフォーマットに変換するために必要とされる比較データとマッピングテーブルとを含むデータテーブル１３１０を記憶することができる。例えば、ウェーブテーブル１３０８が、１２８個の機器と４７個のドラムを含む場合、データテーブル１３１０は、ボリューム変更などを補償するための１２８プラス４７セットの比較データと所要のマッピングテーブルとを含むことができる。
【００９１】
コンピューティングデバイス／電子デバイス１３０２を最初に生成するとき、データテーブル１３１０に記憶されたデータ１３０６を発生し、データテーブル１３１０にロードすることができる。代替的に、既存のコンピューティングデバイス／電子デバイス１３０２にダウンロードされるソフトウェア更新によってデータテーブル１３１０をロードすることができる。
【００９２】
代替的に、または追加として、命令１３０４をロードし、実行するために、並列に動作することができる２つ以上のプロセッサ１３０１が存在することができる。これらの命令１３０４は、音楽ファイル３１０をパースすることと、音楽ファイル３１０内のＭＩＤＩイベントまたはメッセージをスケジュールすることとを含むことができる。スケジュールされたＭＩＤＩイベントを、音楽ファイル３１０中のタイミングパラメータによって指定されたように、同期方式でプロセッサ１３０１によって処理することができる。プロセッサ１３０１は、ＭＩＤＩ合成パラメータを発生するために、時間同期スケジュールに従ってＭＩＤＩイベントを処理することができる。プロセッサ１３０１はまた、合成パラメータに基づいてオーディオサンプルを発生することができる。
【００９３】
コンピューティングデバイス／電子デバイス１３０２はまた、デジタルアナログ変換器（ＤＡＣ）１３１２を含むことができる。プロセッサ１３０１は、ＭＩＤＩ合成パラメータのセットに基づいてオーディオサンプルを発生することができる。オーディオサンプルは、一定の間隔をおいてサンプリングされるアナログ信号のデジタル表現であるパルス符号変調（ＰＣＭ）サンプルを備えることができる。プロセッサ１３０１は、オーディオサンプルをＤＡＣ１３１２に出力することができる。ＤＡＣ１３１２は、次いで、デジタルオーディオ信号をアナログ信号に変換し、アナログ信号を駆動回路１３１４に出力することができ、駆動回路１３１４は、可聴音を作成するために、信号を増幅して１つまたは複数のスピーカ１３１６を駆動することができる。代替的に、コンピューティングデバイス／電子デバイス１３０２は、スピーカ１３１６、駆動回路１３１４、またはＤＡＣ１３１２を有しないことがある。
【００９４】
コンピューティングデバイス／電子デバイス１３０２が音楽ファイル３１０を受け取ると、プロセッサ１３０１は、音楽ファイル３１０をパースし、ダウンロード可能な音声（ＤＬＳ）があるかどうかを検出する。コンピューティングデバイス／電子デバイス１３０２は、音楽ファイル３１０内のダウンロード可能な音声を分析する前に、音楽ファイル３１０に関連するフレームのすべてを受け取るのを待つことができる。ダウンロード可能な音声が音楽ファイル３１０内で検出されない場合、プロセッサ１３０１は、音楽ファイル３１０内のＭＩＤＩデータを処理し、ＭＩＤＩコマンドの一部または全部を変換するが、プロセッサ１３０１には制限がある。例えば、プロセッサ１３０１は、マルチリージョン機器またはユーザ定義ルートノートを正しく変換することができない。
【００９５】
しかしながら、ダウンロード可能な音声が検出されると、プロセッサ１３０１は、ダウンロード可能な音声（ＤＬＳ）データのパラメータを、パラメータおよび内部プレーヤ詳細に対するデバイス制限と比較することによってＤＬＳデータを分析する。この分析に基づいて、プロセッサ１３０１は、次いで、プレイすべき機器の１つまたは複数をデバイス固有のパラメータにマッピングする。プロセッサ１３０１はまた、対応する音楽ファイル３１０を修正することができる。特に、プロセッサ１３０１は、ウェーブテーブル１３０８から、選択された機器に対応する波形サンプルを選択することができる。コンピューティングデバイス／電子デバイス１３０２は、次いで、オーディオサンプルを発生し、オーディオサンプルをＤＡＣ１３１２に送ることによって続ける。ＤＡＣ１３１２の出力は、駆動回路１３１４に進み、可聴音をプレイするために、最終的にスピーカ１３１６に進む。このようにして、コンピューティングデバイス／電子デバイス１３０２は、ＭＩＤＩイベント／ノート音が、作成者が意図した音声にできるだけ近く聞こえるように、ダウンロード可能な音声の音声を最も良く近似する機器を選択することができる。
【００９６】
上記の説明では、様々な用語とともに参照符号が時々使用されている。用語が参照符号とともに使用されている場合、１つまたは複数の図に示されている固有の要素を指すものとする。用語が参照符号なしに使用されている場合、特定の図に限定されない用語を指すものとする。
【００９７】
本開示によれば、モバイルデバイス中の回路は、複数のタイプの圧縮オーディオビットストリームに関する信号変換コマンドおよび付随するデータを受け取るように適合できる。同じ回路、異なる回路、あるいは同じまたは異なる回路の第２のセクションは、複数のタイプの圧縮オーディオビットストリームのための信号変換の一部として変換を実行するように適合できる。第２のセクションは、有利には、第１のセクションに結合するか、または第１のセクションの回路と同じ回路に埋め込むことができる。さらに、同じ回路、異なる回路、あるいは同じまたは異なる回路の第３のセクションは、複数のタイプの圧縮オーディオビットストリームのための信号変換の一部として相補的な処理を実行するように適合できる。第３のセクションは、有利には、第１および第２のセクションに結合するか、または第１および第２のセクションの回路と同じ回路に埋め込むことができる。さらに、同じ回路、異なる回路、あるいは同じまたは異なる回路の第４のセクションは、上述の機能を与える（１つまたは複数の）回路、または（１つまたは複数の）回路の（１つまたは複数の）セクションの構成を制御するように適合できる。
【００９８】
「決定」という用語は、多種多様な行為を包含し、したがって、「決定」は、計算、算出、処理、導出、調査、探索（例えば、テーブル、データベースまたは別のデータ構造での探索）、確認などを含むことができる。また、「決定」は、受け取り（例えば、情報を受け取ること）、アクセス（例えば、メモリ中のデータにアクセスすること）などを含むことができる。また、「決定」は、解決、選択、選出、確立などを含むことができる。
【００９９】
「に基づいて」という句は、別段に明示されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という句は、「のみに基づいて」と「に少なくとも基づいて」の両方を表す。
【０１００】
「プロセッサ」という用語は、汎用プロセッサ、中央処理装置（ＣＰＵ）、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、コントローラ、マイクロコントローラ、状態機械などを包含するものと広く解釈されたい。いくつかの状況下では、「プロセッサ」は、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理デバイス（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などを指すことがある。「プロセッサ」という用語は、処理デバイスの組合せ、例えば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは他のそのような構成を指すことがある。
【０１０１】
「メモリ」という用語は、電子情報を記憶することが可能な任意の電子構成要素を包含するものと広く解釈されたい。メモリという用語は、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、プログラマブル読取り専用メモリ（ＰＲＯＭ）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気または光学データ記憶装置、レジスタなど、様々なタイプのプロセッサ可読媒体を指すことがある。プロセッサがメモリから情報を読み取り、および／または情報をメモリに書き込むことができる場合、メモリはプロセッサと電子的に通信していると言われる。プロセッサに一体化されたメモリは、プロセッサと電子的に通信している。
【０１０２】
「命令」および「コード」という用語は、任意のタイプの（１つまたは複数の）コンピュータ可読ステートメントを含むものと広く解釈されたい。例えば、「命令」および「コード」という用語は、１つまたは複数のプログラム、ルーチン、サブルーチン、関数、プロシージャなどを指すことがある。「命令」および「コード」は、単一のコンピュータ可読ステートメントまたは多くのコンピュータ可読ステートメントを備えることができる。
【０１０３】
本明細書で説明する機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装できる。ソフトウェアで実装した場合、機能は１つまたは複数の命令としてコンピュータ可読媒体上に記憶できる。「コンピュータ可読媒体」という用語は、コンピュータによってアクセスできる任意の媒体を指す。限定ではなく例として、コンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶装置、あるいは命令またはデータ構造の形態で所望のプログラムコードを担持または記憶するために使用でき、コンピュータによってアクセスできる任意の他の媒体を備えることができる。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。
【０１０４】
ソフトウェアまたは命令はまた、送信媒体を介して送信できる。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、送信媒体の定義に含まれる。
【０１０５】
本明細書で開示する方法は、説明した方法を達成するための１つまたは複数のステップまたはアクションを備える。本方法のステップおよび／またはアクションは、特許請求の範囲の範囲から逸脱することなく互いに交換することができる。すなわち、本明細書で説明する方法の適切な動作のためにステップまたはアクションの特定の順序が必要とされない限り、特定のステップおよび／またはアクションの順序および／または使用は、特許請求の範囲の範囲を逸脱することなく修正することができる。
【０１０６】
さらに、図７、図１０、および図１２によって示されたものなど、本明細書で説明する方法および技法を実行するためのモジュールおよび／または他の適切な手段は、デバイスによってダウンロードおよび／または他の方法で取得できることを諒解されたい。例えば、デバイスは、本明細書で説明する方法を実行するための手段の転送を可能にするために、サーバに結合できる。代替的に、本明細書で説明する様々な方法は、記憶手段をデバイスに結合するかまたは与えるときにデバイスが様々な方法を獲得することができるように、記憶手段（例えば、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、コンパクトディスク（disc）（ＣＤ）またはフロッピーディスク（disk）などの物理的記憶媒体など）によって与えることができる。さらに、本明細書で説明する方法および技法をデバイスに与えるための任意の他の適切な技法を利用することができる。
【０１０７】
特許請求の範囲は、上記の正確な構成および構成要素に限定されないことを理解されたい。特許請求の範囲を逸脱することなく、本明細書に記載のシステム、方法および装置の構成、動作および詳細において、様々な改変、変更および変形を行うことができる。
【図１】
2011511308.tif 000008
【図２】
2011511308.tif 000009
【図３】
2011511308.tif 000010
【図３Ａ】
2011511308.tif 000011
【図３Ｂ】
2011511308.tif 000012
【図４】
2011511308.tif 000013
【図５】
2011511308.tif 000014
【図６】
2011511308.tif 000015
【図７】
2011511308.tif 000016
【図７Ａ】
2011511308.tif 000017
【図８】
2011511308.tif 000018
【図９】
2011511308.tif 000019
【図１０】
2011511308.tif 000020
【図１０Ａ】
2011511308.tif 000021
【図１１】
2011511308.tif 000022
【図１２】
2011511308.tif 000023
【図１２Ａ】
2011511308.tif 000024
【図１３】
2011511308.tif 000025
【国際調査報告】
2011511308.tif 000026
2011511308.tif 000027
2011511308.tif 000028