本発明の特徴および利点は、本発明の以下の説明から明らかになろう。
以下の説明で、本発明の様々な実施形態を詳細に説明する。しかし、このような詳細は本発明の理解を容易にし、本発明を実施するための実施形態の例を説明するために含まれているものである。本発明の範囲を逸脱せずに他の変形態様や実施形態が可能なので、このような詳細は本発明を記載された特定の実施形態に限定するために使用されるべきではない。さらに、本発明の完全な理解を提供するために多数の詳細が記載されているが、本発明を実行するためにこれらの具体的な詳細が必ずしも必要ではないということが当業者には明らかになろう。この他の場合、本発明を不明瞭にしないように、周知の方法、データのタイプ、プロトコル、手順、構成要素、ネットワーク機器、プロセス、インターフェース、電気的構造、回路などのような詳細は詳しく記載せず、ブロック図形式で示す。さらに、本発明の態様は具体的な実施形態で記載するが、これら形態はハードウェア、ソフトウェア、ファームウェア、ミドルウェア、またはこれらの組み合わせで実施することができる。
次に図1を参照する。図1は、本発明の一実施形態による、オーディオ・ファイルのマルチメディア・プレゼンテーションをコンピューティング・デバイス102に配信するためのシステム例100を示すブロック図を示している。1つまたは複数のサーバ104がコンピュータ・ネットワーク(例えば、インターネット)105を介してコンピューティング・デバイス102に結合されている。一実施形態では、ユーザによるコンピューティング・デバイス102での楽曲の選択に応じて、サーバ104はその楽曲に関連付けられたセッション・ファイルをコンピュータ・ネットワーク(例えば、インターネット)105を介してコンピューティング・デバイス102に送信する。このセッション・ファイルはデジタル・オーディオ・ファイルとマルチメディア・データを含む。コンピューティング・デバイス102は、後で検討するようにオーディオ・ファイルのマルチメディア・プレゼンテーションをユーザに提示するためにセッション・ファイルを処理する。1つ以上のサーバ104も、後で検討するように、セッション・ファイルや他のアセットを記憶するアセット・データベース107と、ユーザに関する情報を記憶するユーザ情報データベース109とにネットワーク接続を介して結合されている。
セキュリティ・デバイス110を含んだインターフェース・デバイス106がコンピューティング・デバイス102とユーザの楽器112(例えば、ギター)に接続されている。インターフェース・デバイス106は、ユーザがコンピューティング・デバイス102によって処理中のデジタル・オーディオ・ファイルのマルチメディア・プレゼンテーションに合わせて楽器112を演奏できるように、入出力(I/O)リンク114(例えば、ユニバーサル・シリアル・バス・リンク)を介してコンピューティング・デバイス102に楽器112を結合する。さらに、インターフェース・デバイス106は、選択された楽曲に関連するオーディオ・ファイルをユーザがユーザ自身の楽器に合わせて再生する際にユーザの楽器112からのサウンドに合わせて再生するために増幅スピーカ120またはヘッドフォン122のようなアナログ・サウンド・デバイスに接続することができる。
さらに具体的には、インターフェース・デバイス106は、楽器112からのオーディオ信号のアナログ・デジタル(A/D)変換を実行し、I/Oリンク114を介して楽器112のデジタル化されたオーディオ信号をコンピューティング・デバイス102に送信する。楽器112のデジタル化されたオーディオ信号は、例えばユーザが選択した楽曲のオーディオ・ファイルにその信号を合わせるために、楽器の処理済デジタル・オーディオ信号を作成するようソフトウェア・モジュールによって実行されるデジタル信号処理(DSP)を受ける。コンピューティング・デバイス102はデジタル・オーディオ・ファイルと楽器の処理済みデジタル信号の両方のミックスされたデジタル信号を作成し、それを、コンピューティング・デバイス102からI/Oリンク114を介してインターフェース・デバイス106に返送する。ミックスされたデジタル信号がアナログ形式に変換されて(D/A変換)、スピーカ120またはヘッドフォン122のようなアナログ・サウンド・デバイスを介して出力されるミックスされたアナログ・オーディオ信号となる。したがって、ユーザは、ユーザによる学習を容易にするためにコンピューティング・デバイスにマルチメディア・プレゼンテーション形式で提示されるダウンロードした楽曲に合わせて演奏することができる。さらに、後で検討するように、ユーザには、サーバ104からダウンロードすることのできる幅広い種類の楽曲に対する高速かつ容易なアクセスが提供される。
ネットワーク関連業者には、コンピューティング・デバイス102と1つ以上のサーバ104を、モデム・プール(図示せず)を使用して、または追加のネットワークやゲートウェイ(図示せず)を介して直接またはダイヤルアップ電話もしくは他のネットワーク伝送回線経由を含めて様々な方法でコンピュータ・ネットワーク105に結合することができるということを理解できるであろう。例えば、コンピューティング・デバイス102は、単純旧式電話システム(POTS)、セルラ電話システム、ケーブル、デジタル加入者回線、総合デジタル通信網、衛星接続、コンピュータ・ネットワーク(例えば、インターネット、広域ネットワーク(WAN)、またはローカル・エリア・ネットワーク(LAN)など)、または一般にいかなる種類の私設または公共通信回線の1つまたは複数、およびこれらの組み合わせを使用するリンクを介してサーバ104と通信することができる。これらのリンクのための伝送媒体の例には、限定または制限はしないが、電線、光ファイバ、撚線を含めてケーブル、または無線チャネル(例えば、無線周波数(RF)、地上、衛星、またはいかなる他の無線信号伝達方式)が含まれる。
より具体的には、コンピュータ・ネットワーク105は、通常、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)、非同期転送モード(ATM)、フレーム・リレー(FR)、ポイント・ツー・ポイント(PPP)、システム・ネットワーク・アーキテクチャ(SNA)、ボイス・オーバー・インターネット・プロトコル(VoIP)、またはいかなる他の種類のプロトコルを使用することのできるパケット化された、パケット交換された、またはコネクション型などのネットワークである、コンピュータ・ネットワーク(例えば、インターネット、広域ネットワーク(WAN)、またはローカル・エリア・ネットワーク(LAN)など)である。コンピュータ・ネットワーク105は、パケットを使用したコンピューティング・デバイス102と1つ以上のサーバ104との間のデータ・トラフィックの通信を可能にする。ネットワーク・コンピュータ105を介したデータ・トラフィックは、オーディオ、テキスト、グラフィック、ビデオ、電子メール、ファックス、マルチメディア、文書、音声、およびデータの他の一般的な形式を含めていかなるタイプであってもよい。コンピュータ・ネットワーク105は、通常、デジタル・データ・トラフィックを転送するよう設計された切り換えまたは経路指定設備を含むことのできるデータ・ネットワークである。図1の環境は例示に過ぎず、本発明の実施形態はいかなるタイプの通信システムおよび/またはコンピュータ・ネットワーク、プロトコル、およびこれらの組み合わせによって使用することができるということを理解されたい。さらに、1つ以上のサーバ104、アセット・データベース107、ユーザ情報データベース109の間のネットワーク接続は上記例によって説明した方法で結合することもできる。
以上、本発明の実施形態を実行することのできるネットワーク環境例を簡単に説明したが、図2aは本発明の実施形態と共に使用可能な従来型のデータ処理またはコンピュータ・システム200を示している。より具体的には、図2aは、本発明の様々な態様を使用することのできるコンピューティング・デバイス102(例えば、パーソナル・コンピュータ)またはサーバ・コンピュータ・システム104の一例として使用するための一般的なデータ処理またはコンピューティング・システム200の一例を示している。
図示するように、データ処理またはコンピュータ・システム200は、システム・ユニット202、ディスプレイ・デバイス204、プリンタ210のような出力デバイス、およびキーボード208やマウス206のような入力デバイスから構成されている。データ処理システム200は、入力デバイス208、206を操作することにより、またはディスク212のような固定型または取外し可能なメディア・ストレージ・デバイスからや、ネットワーク接続インターフェース(図示せず)から直接的に処理用データを受信する。次いでデータ処理システム200はデータを処理し、その結果得られた出力データをディスプレイ・デバイス204、プリンタ210のような出力デバイス、ディスク212のような固定型または取外し可能なメディア・ストレージ・デバイス、またはネットワーク接続インターフェースを介して提示する。コンピューティング・デバイス102はいかなる種類のコンピュータ・システムまたはコンピューティング・デバイス(例えば、パーソナル・コンピュータ(ラップトップ/デスクトップ)、ネットワーク・コンピュータ、ハンドヘルド・コンピューティング・デバイス、サーバ・コンピュータ、またはいかなる他のタイプのコンピュータ)であってもよいということを理解されたい。さらに、コンピューティング・デバイス102の場合、データ処理システム200は、I/Oリンク114(例えば、USBリンク)を介してインターフェース・デバイス102からの入出力データに適応するためにシリアルI/Oポート113(例えば、USBポート)を含む。
次に図2bを参照する。図2aによって説明されているようなデータ処理システム200の構成要素の高レベル・ブロック図が示されている。従来型コンピュータ・システムでは、システム・ユニット202は、ローカルすなわちシステム・バス214またはそのようなデバイス間でデータを伝達するための他の通信手段を介した様々なタイプのキャッシュ、ランダム・アクセス・メモリ(RAM)、または他の高速ダイナミック・ストレージ・デバイスを含むことのできるメイン・メモリ222と通信状態にあるプロセッサ220のような処理装置を含む。プロセッサは、本発明の実施形態の機能を実施するために情報を処理する。説明用の例として、「プロセッサ」は、複雑命令セット・コンピュータ(CISC)、縮小命令セット・コンピュータ(RISC)、超長命令語(VLIW)、またはハイブリッド・アーキテクチャのようないかなるタイプのアーキテクチャでも有する中央処理装置、またはデジタル信号プロセッサ、マイクロコンピュータ、状態マシンなどを含むことができる。
メイン・メモリ222は、データならびにプロセッサ220によって実行される命令を記憶することができ、プロセッサ220による命令の実行中に一時的数値変数または他の中間情報を記憶するために使用することができる。コンピュータ・システム200は、読み取り専用メモリ(ROM)および/またはプロセッサ220のために静的情報と命令を記憶するためにローカル・バス214に結合されている他の静的ストレージ・デバイス224も含む。不揮発性メモリ224の例には、ハードディスク、フラッシュ・メモリ、バッテリバックのランダム・アクセス・メモリ、読み取り専用メモリ(ROM)などが含まれ、揮発性メイン・メモリ222は、ランダム・アクセス・メモリ(RAM)、動的ランダム・アクセス・メモリ(DRAM)、または静的ランダム・アクセス・メモリ(SRAM)などが含まれる。
データ処理システム200のシステム・ユニット202は、様々なデバイスと、バス・ブリッジ218を介してシステム・バス214に取り付けられている複数のデバイスの間で通信する拡張バス216も特徴とする。磁気ディスク212またはCD−ROMやDVDのような光ディスクのようなデータ・ストレージ・デバイス228とその対応するドライブが拡張バス216を介してデータと命令を記憶するためにデータ処理システム200に結合されている。コンピュータ・システム200は、コンピュータのユーザに生成されたミーティングのパッケージ記述と関連画像のようなデータを表示するために陰極線管(CRT)または液晶ディスプレイ(LCD)のようなディスプレイ・デバイス204にも拡張バス216を介して結合されている。通常、英数字と他のキーを含む英数字入力装置208は情報および/またはコマンド選択をプロセッサ220に伝達するためにバス216に結合されている。他のタイプのユーザ入力デバイスは、方向情報とコマンド選択をプロセッサ220に伝達し、またディスプレイ204上でカーソルの移動を制御するための、従来型のマウス、トラックボール、またはカーソル方向キーのようなカーソル制御デバイス206である。さらに、コンピューティング・デバイス102の場合、データ処理システム200は、インターフェース・デバイス106からの入出力データをシリアルI/Oリンク114(例えば、USBリンク)を介して受け取るためにシリアルI/Oポート113(例えば、USBポート)を含む。
通信デバイス226は、サーバ104のような遠隔コンピュータまたはサーバ、もしくは他のサーバに例えばインターネットを介してアクセスするためにバス216にも結合されている。通信デバイス226は、モデム、ネットワーク・インターフェース・カード、またはイーサネット(登録商標)、トークンリング、または他のタイプのネットワークとインターフェースするために使用されるような他の周知のインターフェース・デバイスを含むことができる。いかなる場合でも、この方法では、コンピュータ・システム200は、図1に示し上記で説明したようなネットワーク・インターフェースを介して複数のサーバ104に結合することができる。
従来型のデータ処理またはコンピュータ・システム200の例で続けると、コンピューティング・デバイス102とサーバ104のどちらも、デバイスに電源が投入されるかリセットされた場合に実行するためにデバイスのメモリにブートされたオペレーティング・システムの制御下で動作することができる。さらには、オペレーティング・システムは1つまたは複数のソフトウェア・モジュールまたはコンピュータ・プログラムの実行を制御する。これらのソフトウェア・モジュールは、通常、コンピューティング・デバイス102とサーバ104を使用する際にユーザを支援するアプリケーション・プログラムと、ユーザに表示するために、またユーザがマルチメディア・プレゼンテーションに合わせて楽器を演奏できるようにするために、コンピューティング・デバイス102へのオーディオ・ファイルのマルチメディア・プレゼンテーションの配信に関連付けられた様々な機能、ならびに後で検討するようにセキュリティおよび商業方法に関連する他の機能を含む。
本発明の所望の機能を実行するために1つまたは複数の命令(例えば、コード・セグメント)としてこれらの機能を実施することができる。ソフトウェアで実施される場合(例えば、ソフトウェア・モジュールによって)、本発明の要素は必要なタスクを実行するための命令/コード・セグメントである。命令は、マシンまたはプロセッサ(例えば、プロセッサ220)によって読み取られ、実行されたときに、マシンまたはプロセッサに本発明の実施形態を実施し、かつ/または使用するために必要なオペレーションを実行させる。この命令またはコード・セグメントを、機械可読媒体(例えば、プロセッサ可読媒体またはコンピュータ・プログラム製品)に記憶させても、搬送波で実施されるコンピュータ・データ信号または搬送波によって変調される信号により伝送媒体または通信リンクを介して送信してもよい。機械可読媒体は、機械(例えば、プロセッサ、コンピュータなど)によって可読かつ実行可能な形式の情報を記憶または転送することのできるいかなる媒体でも含むことができる。機械可読媒体の例には、電子回路、半導体メモリ・デバイス、ROM、フラッシュ・メモリ、消去プログラム可能ROM(EPROM)、フロッピー(登録商標)・ディスケット、コンパクト・ディスクCD−ROM、光ディスク、ハードディスク、光ファイバー媒体、無線周波数(RF)リンクなどが含まれる。コンピュータ・データ信号は、電子ネットワーク・チャネル、光ファイバ、空中、電磁気、RFリンクなどのような伝送媒体を介して伝播することのできるいかなる信号であってもよい。コード・セグメントは、インターネット、イントラネットなどのようなネットワークを介してダウンロードすることができる。
次に図3aを参照する。図3aは、本発明の一実施形態によるインターフェース・デバイス106の平面図を示している。インターフェース・デバイス106は、ユーザがコンピューティング・デバイス102による処理中のオーディオ・ファイルのマルチメディア・プレゼンテーションに合わせて楽器112を演奏することができるように、コンピューティング・デバイス102に入出力(I/O)リンク114を介して楽器112を結合する。図3aの平面図に示すように、インターフェース・デバイス106は、楽器112とオーディオ・ファイルのボリュームを調製するためのボリューム・ダイヤルすなわちノブ304と、インターフェース・デバイスの動作状態(すなわち、電源が入っているか切れているか)を示すLEDインジケータ308を含む。インターフェース・デバイス106は、内部電子構成要素を収納するために金属、プラスチック、金属めっきしたプラスチックなどのハウジングを含む。本発明の一実施形態によりインターフェース・デバイス106の正面図を示す3bに手短に戻ると、インターフェース・デバイスは、楽器がインターフェース・デバイス106に電気的に結合されように、楽器112から入力ジャック(または他の入力デバイス)を受け入れるために入力ポート310を含む。
次に図3cを参照する。図3cは、本発明の一実施形態によるインターフェース・デバイス106の背面図を示している。インターフェース・デバイス106は、インターフェース・デバイス106を増幅スピーカに接続することができるように、増幅スピーカ120用スピーカ・ジャックを受け入れるために使用することのできる左右スピーカの出力ポート320、322を含む。これにより、自分の楽器112を演奏しているユーザには、楽器と、コンピューティング・デバイス102による処理中の楽曲に関連付けられたオーディオ・ファイルの両方が聴こえる。さらに、インターフェース・デバイス106はポート323の追加回線を含む。例えば、ゲームからのサウンドやコンピューティング・デバイス102からの他のソフトウェア・プログラムをインターフェース・デバイス106を介してスピーカ120またはヘッドフォン122に単純に経路指定できるよう、コンピューティング・デバイス102のサウンド・カードからの入力をサポートするためにポート323の追加回線を使用することができる。
また、インターフェース・デバイス106は、ユーザがヘッドフォン122を使用して自分の楽器112とオーディオ・ファイルを聴けるように、ヘッドフォン122にヘッドフォン・ジャックを受け入れるために使用することのできるヘッドフォン出力ポート326を含む。インターフェース・デバイス106は、インターフェース・デバイス106とコンピューティング・デバイス102の間にI/Oリンク114(例えば、USBリンク)を形成することができるように、I/Oコネクタ(例えば、USBコネクタ)を受け入れるためのシリアルI/Oポート330(例えば、USBポート)をさらに含む。インターフェース・デバイス106は、他の入力部および出力部も幾つでも含むことができるということを理解されたい。
次に図3dを参照する。図3dは、本発明の一実施形態によるインターフェース・デバイス106の内部構成要素334の略図である。インターフェース・デバイス106は、以下でより詳細に検討するように楽器112とコンピューティング・デバイス102の間における信号のA/DとD/A変換に関連する機能、ならびにセキュリティ・デバイス110を使用するセキュリティ機能を実行するためにインターフェース・デバイス106の構成要素を制御するマイクロプロセッサ340を含む。
図3dに示すように、インターフェース・デバイス106は、増幅器336に接続されている入力ポート310からInstrument in回線を含む。したがって、一例として、入力ポート310から入ってくる楽器112からのアナログ・オーディオ信号は増幅器336によって増幅される。増幅されたアナログ・オーディオ信号がA/Dコンバータ338によって処理され、楽器のデジタル化されたオーディオ信号に変換されるように、増幅器336はアナログ・デジタル(A/D)コンバータ338に接続されている。
インターフェース・デバイス106のマイクロプロセッサ340は、セキュリティ・デバイス110、バッファRAM 344、およびデジタル・オーディオ・インターフェース346の構成要素に結合されている。マイクロプロセッサ340は、楽器112とコンピューティング・デバイス102の間で信号のA/DおよびD/A変換に関連する機能を実行するためにインターフェース・デバイス106の構成要素334を制御する。デジタル・オーディオ・インターフェース346は、デジタル化されたオーディオ信号をフォーマットし、タイミングを取ることに関連する従来の機能を実行する。デジタル・オーディオ・インターフェース346は、これらの機能を実行するために複数のタイミング・クロックを含むことができる。したがって、この例で続けると、楽器112のデジタル化されたオーディオ信号がデジタル・オーディオ・インターフェース346によって次にフォーマットされる。さらに、デジタル・オーディオ・インターフェース346は、速度整合のためにデジタル化されたオーディオ信号の一部を記憶するために使用されるバッファRAM 344に結合されている。
さらに、バッファRAM 344はマイクロプロセッサ340とシリアルI/Oコントローラ348とに接続されている。シリアルI/Oコントローラ348は、シリアルI/Oリンク114にそってコンピューティング・デバイス102への/からのデジタル・データのフローを制御する。一例では、シリアルI/Oコントローラ348はUSBコントローラであってよく、シリアルI/Oリンク114はUSBリンクであってよい。シリアルI/Oコントローラ348によって制御されるデジタル・データは、楽器112から直接的に入ってきてデジタル信号処理(DSP)のためにコンピューティング・デバイス102に送信中のデジタル化されたオーディオ信号と、コンピューティング・デバイス102によってDSPを既に受けた楽器の処理済デジタル・オーディオ信号と、コンピューティング・デバイス102から入ってくる選択された楽曲に関連付けられたデジタル・オーディオ・ファイルの両方のミックスしたデジタル信号とを含むことができる。しかし、楽器のデジタル化された信号はDSP処理のためにコンピューティング・デバイス102を介して渡す必要はなく、ユーザが依然としてオーディオ・ファイルに合わせて演奏することができるようにDAC 350に直接的に渡し、アナログ・サウンド・デバイスに渡すことができるということを理解されたい。バッファRAM 344は、速度整合のような従来の目的のために、楽器のデジタル・オーディオ信号(事前DSP処理)、デジタル・オーディオ・ファイル、およびミックスされたデジタル信号を記憶するためにも使用される。
デジタル・オーディオ・インターフェース346はデジタル・アナログ・コンバータ(DAC)350にさらに接続されている。ミックスしたアナログ・オーディオ信号を、増幅スピーカ120またはヘッドフォン122のようなアナログ・サウンド・デバイスを介して再生することができるように、楽器の処理済のデジタル・オーディオ信号とコンピューティング・デバイス102からのデジタル・オーディオ・ファイルの両方のミックスしたデジタル信号は、このミックスしたデジタル信号をアナログ形式に、すなわちミックスしたアナログ・オーディオ信号に変換するためにDAC 350によって処理される。しかし、上記のように、楽器のデジタル化された信号はDSP処理のためにコンピューティング・デバイス102を介して渡される必要はなく、ユーザがオーディオ・ファイルに合わせて演奏することができるようにDAC 350に直接的に渡し、アナログ・サウンド・デバイスに渡すことができるということを理解されたい。
DAC 350の出力部にはミキサー352が接続されている。ミキサー352は、増幅器358、360によってそれぞれ増幅されるポート323の回線のようなソースの他の回線からのアナログ・オーディオ信号入力を受信する。この結果、これらは増幅スピーカ120またはヘッドフォン122を介して再生することもできる。
ポート323の回線からのこれら追加のアナログ・オーディオ信号入力を、楽器のアナログ・オーディオ信号とオーディオ・ファイルとミックスするか、インターフェース・デバイスを介してスピーカ120またはヘッドフォン122に単純に経路指定してもよい。例えば、ゲームからのサウンドと、コンピューティング・デバイス102からの他のソフトウェア・プログラムをインターフェース・デバイス106を介してスピーカ120またはヘッドフォン122に単純に経路指定することができるように、ポート323の回線からの入力部の追加回線はコンピューティング・デバイス102のサウンド・カードからであってもよい。この方法で、コンピューティング・デバイス102(例えば、パーソナル・コンピュータ)にフックされているインターフェース・デバイス106と共に他のソフトウェア・プログラムを依然として使用することができ、ユーザはインターフェース・デバイスを使用することとインターフェース・デバイスを使用しないことを切り換えるためにユーザ自身のパーソナル・コンピュータ・システムを再構成する必要ない。
次いでミキサー352からのアナログ信号はスピーカ・ポートおよび320、322を介して回線out(例えば、左、右)360、362を介して増幅スピーカ120に渡される。具体的には、アナログ信号はボリューム・コントローラ368の制御下で増幅器364、366により増幅することができ、ボリューム・コントローラ368はボリューム・ダイヤル304によって制御される。同様に、ミキサー352からのアナログ信号もヘッドフォン・ポート326を介して回線out360、362(例えば、左、右)を介してヘッドフォン122にも渡される。同様に、アナログ信号はボリューム・コントローラ368の制御下で増幅器374、376により増幅することができ、ボリューム・コントローラ368はボリューム・ダイヤル304により制御される。
したがって、コンピューティング・デバイス102による処理中のオーディオ・ファイルのマルチメディア・プレゼンテーションに合わせてユーザが楽器112を演奏できるように、インターフェース・デバイス106は入出力(I/O)リンク114を介して楽器112をコンピューティング・デバイス102に結合させる。より具体的には、上記のように、インターフェース・デバイス106は楽器112からのオーディオ信号のアナログ・デジタル(A/D)変換を実行し、楽器のデジタル化されたオーディオ信号をI/Oリンク114を介してコンピューティング・デバイス102に送信する、そこで、楽器112のデジタル化されたオーディオ信号がソフトウェア・モジュールによって実行されるデジタル信号処理(DSP)を受ける(例えば、それをユーザが選択した楽曲のオーディオ・ファイルに合わせるために)。デジタル・オーディオ・ファイルと楽器の処理済みデジタル信号の両方のミックスされたデジタル信号がコンピューティング・デバイス102からI/Oリンク114にそってインターフェース・デバイス106に返送され、ミックスされたデジタル信号はそこでアナログ形式、すなわちミックスされたアナログ・オーディオ信号に変換され(D/A変換)、スピーカ120またはヘッドフォン122を介して出力される。したがって、ユーザによる学習を容易にするために、後述するようにコンピューティング・デバイスにマルチメディア・プレゼンテーション形式で提示されたダウンロードされた楽曲に合わせてユーザは演奏することができる。
インターフェース・デバイス106はセキュリティ・デバイス110も含む。許可されたインターフェース・デバイスで操作中のユーザに対してのみサーバ104へのアクセスが認められるように、セキュリティ・デバイス110はインターフェース・デバイス106をサーバ104に対して一意に識別するために使用することのできる構成要素を含む。さらに、適切に許可されたインターフェース・デバイス106がオーディオ・ファイルを受信し使用できるように、セキュリティ・デバイス110がサーバ104と共に、オーディオ・ファイルが適切に暗号化され解読されることを保証するために使用される。これは、認可された素材の無許可の複製から保護し、コンテンツ(例えば、オーディオ・ファイル)の提供者に対して安全な収入の機会を提供する。
セキュリティ・デバイスは、マイクロプロセッサ340、セキュリティ論理380を有するセキュリティ保護されたメモリ379、セキュリティ・ファームウェア383を記憶するためのプログラム・ストレージ382、および不揮発性メモリ(例えば、EEPROM)384を含む。一般に、セキュリティ保護されたメモリ379や不揮発性メモリ384と共にマイクロプロセッサ340によって実行された場合、セキュリティ・ファームウェア383は、サーバ104がインターフェース・デバイス106を一意に識別し、許可されたインターフェース・デバイス106によって使用するために特別に暗号化されたオーディオ・ファイルを、インターフェース・デバイス106と共にコンピューティング・デバイス102が解読できる安全なオペレーションを提供する。セキュリティ保護されたメモリ379は、ハードウェアで実施されるセキュリティ論理380を使用して読み取り、書き込むためにロックし、ロック解除することのできる読み取り専用メモリ(ROM)と書き込み可能メモリの両方を含む。
インターフェース・デバイス106のシリアル番号386に関連付けられたユーザ・キー387は、インターフェース・デバイス106をサーバ104に認証させるためにセキュリティ論理380によって使用される。また、メモリ・キー389は、セキュリティ保護されたメモリ379を最初にロック解除するためにセキュリティ論理380によって使用される。シリアル番号386、ユーザ・キー387、メモリ・キー389は製造中にセキュリティ保護されたメモリ379に封印される。セキュリティ保護されたメモリ379が一度封印されたらその後は二度と書き込むことはできない。サーバ104が、以下でより詳細に検討するように、インターフェース・デバイス106を一意に認証するために最初に要請と応答を生成し、かつセキュリティ保護されたメモリ379と不揮発性メモリ384を開きかつロックすることができるように、サーバのユーザ情報データベース109にもシリアル番号386、ユーザ・キー387、メモリ・キー389が格納される。
不揮発性メモリ384はセキュリティ保護されたメモリ379に対する拡張として使用される。セキュリティ保護されたメモリ379もロック解除されていない限り、ファームウェア383は不揮発性メモリ384へのアクセスを阻止する。不揮発性メモリ384は、ファームウェア383によって制御されるハードウェア書き込み保護を有する。不揮発性メモリ384は、特定の購入したアセット(例えば、オーディオ・ファイル)に関連付けられたアセット暗号化キー(例えば、オーディオ・ファイル・キー)のようなキー388、現在の日付とあるアセット390に対する購入申込の日付、およびアセット情報(例えば、アセットに関する情報)392を記憶する。シリアル番号386、ユーザ・キー387、メモリ・キー389、キー388、日付390、アセット情報392、およびファームウェア383などを、セキュリティ・デバイスのメモリ、プログラム・ストレージ382、安全なメモリ379、または不揮発性メモリ384のどれか、すなわちプログラム・ストレージ382、セキュリティ保護されたメモリ379、または不揮発性メモリ384に置き、または同一場所に配置することができるが、この具体的な構成は一実施形態に過ぎないといことを理解されたい。
以下でより詳細に検討するように、多くの他の機能と共に、セキュリティ・デバイス110はコンピューティング・デバイス102やサーバ104と共に、サーバ104がインターフェース・デバイス106を一意に識別することを可能にし、コンピューティング・デバイス102がインターフェース・デバイス106と共に、許可されたインターフェース・デバイス106によって使用するために特別に暗号化されたオーディオ・ファイルを解読することを可能にする。
図4は、本発明の一実施形態による、使用されている典型的なソフトウェア・モジュールを示す、コンピューティング・デバイス102にオーディオ・ファイルのマルチメディア・プレゼンテーションを配信するためのシステム例100のより詳細な図面を示すブロック図である。簡単にいえば、上記のように、1つ以上のサーバ104がコンピュータ・ネットワーク(例えば、インターネット)105を介してコンピューティング・デバイス102に結合されている。さらに、インターフェース・デバイス106がコンピューティング・デバイス102に結合されており、楽器112はインターフェース・デバイスに結合されている。一実施形態では、ユーザによるコンピューティング・デバイス102での楽曲の選択に応じて、サーバ104は楽曲に関連付けられたセッション・ファイルをコンピュータ・ネットワーク(例えば、インターネット)105を介してコンピューティング・デバイス102に送信する。セッション・ファイルはオーディオ・ファイルとマルチメディア・データを含む。コンピューティング・デバイス102による処理中のオーディオ・ファイルのマルチメディア・プレゼンテーションに合わせてユーザが楽器112を演奏できるように、コンピューティング・デバイス102は、オーディオ・ファイルのマルチメディア・プレゼンテーションをユーザに提示するためにセッション・ファイルを処理する。
より具体的には、図4に示すように、コンピューティング・デバイス102とサーバ104はそれぞれ、本発明の実施形態の機能を実施する複数のソフトウェア・モジュールを含む。これらのソフトウェア・モジュールは、通常、コンピューティング・デバイス102とサーバ104を使用する際にユーザを支援するアプリケーション・プログラムと、以下で検討するようにユーザに表示し、またユーザがマルチメディア・プレゼンテーションに合わせて楽器を演奏することを可能にするオーディオ・ファイルのマルチメディア・プレゼンテーションをコンピューティング・デバイス102に配信することに関連する様々な機能、ならびにセキュリティおよび商業方法に関連する他の機能を含む。例えば、コンピューティング・デバイス102はアプリケーション・ソフトウェア・モジュール402を含み、このアプリケーション・ソフトウェア・モジュール402は埋め込まれたブラウザ404、オーディオ再生ソフトウェア・モジュール406、およびセキュリティ・ソフトウェア・モジュール408をさらに含む。さらにコンピューティング・デバイス102は、デバイス・ドライバ・ソフトウェア・モジュール410とオーディオDSPソフトウェア・モジュール412を含む。サーバ側では、サーバ104は、サーバ・ソフトウェア・モジュール415、アプリケーション・ソフトウェア・モジュール416、データベース・ソフトウェア・モジュール418、商業ソフトウェア・モジュール420、およびセキュリティ・ソフトウェア・モジュール422を含む。
コンピューティング・デバイス102のアプリケーション・ソフトウェア・モジュール402は、埋め込まれたブラウザ404と他のすべてのソフトウェア・モジュール(例えば、オーディオDSPソフトウェア・モジュール412、オーディオ再生ソフトウェア・モジュール406、デバイス・ドライバ・ソフトウェア・モジュール410、およびセキュリティ・ソフトウェア・モジュール408)の実施形態とインターフェースし、これを制御する。これによって、マルチメディア・プレゼンテーションに合わせてユーザが楽器を演奏できるようにするためにユーザにオーディオ・ファイルのマルチメディア・プレゼンテーションを表示すること、ならびにセキュリティやその他の商業機能に関する本発明の実施形態が適切に実施される。一実施形態では、アプリケーション・ソフトウェア・モジュール402は埋め込まれたブラウザ404と共に、選択すべき複数の楽曲をユーザに提供するウェブページ(例えば、ホームページ)をまずユーザに表示する。埋め込まれたブラウザ404は、アプリケーション・ソフトウェア・モジュール402とその様々な機能に関して特に合わされており、Microsoft Explorerのような従来から知られているいかなるタイプのブラウザにでも基づくことができる。
アプリケーション・ソフトウェア・モジュール402は、楽器のサウンド特性を規定する設定を含む楽器112へのコントロール・パネル・グラフィカル・インターフェースも表示させる。コントロール・パネル・グラフィカル・インターフェースは、楽器112に対するサウンド特性をユーザが設定することも可能にする。さらに、サーバ104によってコンピューティング・デバイス102に送信される選択された楽器(例えば、ユーザによって選択された)に対するセッション・ファイルのマルチメディア・データに応じて、アプリケーション・ソフトウェア・モジュール402は、ユーザが選択した楽曲に対するオーディオ・ファイルに関連付けられた楽器のサウンド特性をモデル化するためにコントロール・パネル・グラフィカル・インターフェースの設定を事前定義された値に設定する。同様に、アプリケーション・ソフトウェア・モジュール402は、ユーザが選択し(例えば、そしてサーバ104からコンピューティング・デバイス102に送信された)、ユーザの楽器に関連付けられたトラックをオーディオ・ファイルから除去した楽曲を再生することができる。この結果、ユーザの楽器を含まないオーディオ・ファイルのマルチメディア・プレゼンテーションに合わせてユーザは自分の楽器112を演奏することができる。さらに、アプリケーション・ソフトウェア・モジュール402は、楽曲のオーディオ・ファイルに関連付けられた楽譜をユーザに対して表示させるためにセッション・ファイルのマルチメディア・プレゼンテーションを処理する。マルチメディア・プレゼンテーションの表示はコンピューティング・デバイス102のディスプレイ・デバイス204で行うことができ、サウンドはインターフェース・デバイス106の増幅スピーカ120を介して経路指定することができる。
これらの機能を達成するために、アプリケーション・ソフトウェア・モジュール402は、従来のデバイス・ドライバ・ソフトウェア・モジュール410や、オーディオDSPソフトウェア・モジュール412、オーディオ再生ソフトウェア・モジュール406を使用する。楽器のサウンド特性をユーザが設定できるように、オーディオDSPソフトウェア・モジュール412は楽器112のオーディオ信号を処理する(例えば、DSPアルゴリズムを使用して)。上記のように、楽器のサウンド特性をモデル化し、ユーザが選択した楽器に適切に関連付けられるようにコントロール・パネル・グラフィカル・インターフェースの設定を事前定義された値に設定するためにアプリケーション・ソフトウェア・モジュール402によってオーディオDSPソフトウェア・モジュール412を使用することができる。さらに、オーディオDSPソフトウェア・モジュール412は、上記のミックスしたデジタル・オーディオ信号を作成するために、デジタル・オーディオ・ファイルと楽器の処理済みデジタル・オーディオ信号の両方を結合する。また、アプリケーション・ソフトウェア・モジュール402は、デジタル・オーディオ・ファイルと楽器112のデジタル処理されたサウンドのミックスされたデジタル信号を、それがユーザに対して増幅スピーカ120またはヘッドフォン122によって再生されるインターフェース・デバイス106に返送するのを制御するために、オーディオ再生ソフトウェア・モジュール406を制御する。しかし楽器が処理のためにコンピューティング・デバイス102ではなくインターフェース・デバイス106を介してのみ経路指定される場合、アプリケーション・ソフトウェア・モジュール402はデジタル・オーディオ・ファイルのみの送信を制御するためにオーディオ再生ソフトウェア・モジュール406も制御することができる。様々な異なる楽器用のオーディオDSPソフトウェア・モジュールは当技術分野では周知であることを理解されたい。例えば、MIDIファイルを変更することのできる一般的なタイプのDSPソフトウェア・モジュールは良く知られている(例えば、MIDI SHOP)。また、オーディオ・ファイルと楽器からのオーディオ信号とを再生するために使用されるオーディオ再生ソフトウェア・モジュールも良く知られている。
以下で本発明の態様を説明するために使用する具体的な一実施形態では、アプリケーション・ソフトウェア・モジュール402、オーディオDSPソフトウェア・モジュール412、ユーザがログオンするウェブページ、およびコントロール・パネル・グラフィカル・インターフェースは、楽器112としてギターをサポートするよう指示される。具体的には、ギターからのオーディオ信号を変更するためのDSPアルゴリズムは当技術分野では周知であり、コンピューティング・デバイス102のソフトウェアで容易に実施することができるということを理解されたい。例えば、本発明の態様を実装するためにオーディオDSPソフトウェア・モジュール412で使用することのできる様々な増幅器とスピーカ・キャビネットの構成をモデル化するためにギターからのオーディオ信号を変更するためのDSPアルゴリズムの一例は、参照により本明細書に組み込んだ「Tube Modeling Programmable Digital Guitar Amplification System」という名称の特許出願第5,789,689号に具体的に記載されている。さらに、複数の異なる楽器用の幅広い種類のソフトウェアで実現されるコントロール・パネル・グラフィカル・インターフェースが知られており、ギターに関しては、いくつかの基本的なコントロール・パネル・グラフィカル・インターフェースが知られている。例えば、AMP FARMは、ギター用のソフトウェアで実現されるコントロール・パネル・グラフィカル・インターフェースの1つのタイプを含む。しかし、これらはどれも、以下でさらに詳細に説明するギター・コントロール・パネル・グラフィカル・インターフェースの新しくて自明でない特徴の多くを含まない。さらにまた、コンピューティング・デバイス102のセキュリティ・ソフトウェア・モジュール408の形態も以下でさらに詳細に説明する。
本発明の一実施形態では、サーバ104は、サーバ・ソフトウェア・モジュール415、アプリケーション・ソフトウェア・モジュール416、データベース・ソフトウェア・モジュール418、商業ソフトウェア・モジュール420、およびセキュリティ・ソフトウェア・モジュール422を含む。アプリケーション・ソフトウェア・モジュール416は、サーバ104でサーバ・ソフトウェア・モジュール415とすべての他のソフトウェア・モジュール(例えば、データベース・ソフトウェア・モジュール418、商業ソフトウェア・モジュール420、およびセキュリティ・ソフトウェア・モジュール422)の実施形態とインターフェースを取り、またこれを制御する。この結果、ユーザがマルチメディア・プレゼンテーションに合わせて楽器を演奏すること、ならびにセキュリティおよび商業機能に関する他の機能を可能にするためにユーザに対してオーディオ・ファイルのマルチメディア・プレゼンテーションを表示することに関する本発明の実施形態が適切に実現される。
以下で検討するように、サーバ104で、アプリケーション・ソフトウェア・モジュール416はサーバ・ソフトウェア・モジュール415と共に、コンピューティング・デバイス102に本発明の機能を実現するために必要なデータを提供する。サーバ・ソフトウェア・モジュール415は、コンピューティング・デバイス102にデータを送信し/デバイス102から受信するための従来のサーバ・ソフトウェアであってよい。例えば、ハイパーテキスト転送プロトコル(HTTP)およびハイパーテキスト・マークアップ言語(HTML)または拡張マークアップ言語(XML)を使用して、サーバ104は様々な機能とデータをユーザに提供するためにコンピュータ・ネットワーク105を介してコンピューティング・デバイス102と通信することができる。コンピューティング・デバイス102では、アプリケーション・ソフトウェア・モジュール402の一部である埋め込まれたブラウザ404、もしくは場合によりNetscape(商標)社(Mountain View,CA)製のNetscape(商標)Navigator(商標)、Microsoft(商標)社(Redmond,WA)製のInternet Explorer(商標)、America Online(商標)のユーザ・インターフェース、または良く知られた供給業者によるいかなる他のブラウザまたはHTML/XMLトランスレータのような他のブラウザを使用して、コンピューティング・デバイス102はサーバ104にデータを供給し、サーバ104にある処理済または未処理のデータにアクセスすることができる。
上記のように本発明の一実施形態によれば、アプリケーション・ソフトウェア・モジュール416の制御下にあるサーバ・ソフトウェア・モジュール415は、コンピューティング・デバイス102でのユーザの楽曲の選択に応じて、コンピュータ・ネットワーク105を介してコンピューティング・デバイス102にセッション・ファイルを送信する。セッション・ファイルは、オーディオ・ファイルとマルチメディア・データとを含む。これによって、コンピューティング・デバイス102は、ユーザにオーディオ・ファイルのマルチメディア・プレゼンテーションに合わせて自分の楽器112(例えば、ギター)を演奏できるようにユーザにマルチメディア・プレゼンテーションを提供するためにセッション・ファイルを処理することができる。さらに、後で検討するように、アプリケーション・ソフトウェア・モジュール416の制御下のサーバ・ソフトウェア・モジュール415は、本発明の機能を実現するために様々な異なる種類のデータをコンピューティング・デバイス102から受信し/に送信する。
データベース・ソフトウェア・モジュール418は、以下でより詳細に検討するように、アプリケーション・ソフトウェア・モジュール416の制御下にあるアセット・データベース107とユーザ情報データベース109のデータの入力と出力を制御するためにMySQLのような従来のデータベース・ソフトウェアであってよい。さらに、商業ソフトウェア・モジュール420とセキュリティ・ソフトウェア・モジュール422の態様と機能を以下でより詳細に検討する。
サーバ104とコンピューティング・デバイス102の間で伝達されたデータは、マルチメディア・データとオーディオ・ファイルを有するセッション・ファイル、ユーザ情報、オーディオ・ファイルと他のアイテムの購入やライセンシング制約を追跡するための商業情報、暗号化されたキーや暗号化されたアセットとオーディオ・ファイルを含むセキュリティ情報、ウェブサイト表示用マルチメディア・データを複数の他のデータと共に含む。セッション・ファイル、マルチメディア・データ、オーディオ・ファイル、商業情報、および他のアセットに関する情報の多くは、後で検討するようにアセット・データベース107に記憶することができる。ユーザ名、電子メール・アドレス、自宅住所、コンピュータ接続速度、クレジットカード番号、購入情報、コンピュータのタイプ、ユーザの音楽的な好みのタイプ、およびユーザまたはセキュリティ・デバイス110に対するユーザのシリアル番号、ユーザ・キー、メモリ・キー、および他のユーザ情報を含めてセキュリティ情報を含むユーザ情報は、後で検討するようにユーザ情報データベース109に記憶することができる。関連分野の業者には、アセット・データベース107とユーザ情報データベース109は、1つまたは複数のDASDアレイ、テープ・ドライブ、光ドライブなどのような様々な大容量記憶装置を含めてストレージ・デバイスに記憶することができ、上記の情報は様々な形式またはデータ構造のいずれか1つで記憶することができることは容易に理解されよう。
以下で本発明の態様の一部を説明するために使用する具体的な一実施形態では、コンピューティング・デバイス102、サーバ104とそれに関連したアセットやユーザ情報データベース107、109、およびインターフェース・デバイス106が、関連するソフトウェア・モジュールと共に、楽器としてギター112をサポートするために使用される。しかし、当業者には、本発明はいかなるタイプの楽器でもサポートするよう使用することができるということを理解されたい。さらに、本発明は、本発明の実施形態が仮想カラオケ機として機能することができるように、マイクロフォンが楽器として使用され、入力オーディオ信号が人間の声である場合もサポートできることを理解されたい。これらの形態は、本開示をさらに読むことによってより理解されよう。
図5aを参照する。図5aは、図4の既に記載したシステム例100を使用して、本発明の一実施形態による、ユーザにマルチメディア・プレゼンテーションを配信するための方法500を示す流れ図である。ブロック502で、ユーザがユーザ自身のコンピューティング・デバイス102にアプリケーション・ソフトウェア・モジュール402をロードした後、アプリケーション・ソフトウェア・モジュール402は図6aに示すようにコントロール・パネル・グラフィカル・インターフェース600をユーザに提示する。例えば、コントロール・パネル・グラフィカル・インターフェース600をコンピューティング・デバイス102のディスプレイ・デバイス204に表示することができる。次に、コンピューティング・デバイス102は、アプリケーション・ソフトウェア・モジュール402を使用して、ユーザがサーバ104にログオンしてサーバにアクセスすることを許可する。以下で検討するある具体的なギターの実施形態によれば、サーバは、以下でGUITARPORTウェブサイトと称するギター関連ウェブサイトをユーザに提示する。すなわち、ユーザには、まずGUITARPORTホームページが、その後、他のGUITARPORTウェブページが提示される。
同様に図6aを参照すると、サーバ104へのログオンはユーザがGUITARPORTオンライン・ボタン606を選択することにより達成することができる。例えば、コンピューティング・デバイス102は標準のコンピュータ・ネットワーク・プロトコル(例えば、TCP/IP)を使用してコンピュータ・ネットワーク(例えば、インターネット)を介してサーバ104に接触することができる。ブロック506で、アプリケーション・ソフトウェア・モジュール416の制御下にあるサーバ104はセキュリティ・ソフトウェア・モジュール422と共に、サーバ104へのアクセスが許可されるべきか否かを判定するためにセキュリティ・デバイス110からの一意の識別子(例えば、インターフェース・デバイス106のシリアル番号)に基づいてユーザを識別する。これらのセキュリティ機能については後でより詳細に検討する。ユーザがサーバ104によって許可されない場合、ブロック508でセッションは終了する。しかし、ユーザがサーバ104を使用することが許可された場合、方法500はブロック510に移動する。
ブロック510で、アプリケーション・ソフトウェア・モジュール402は、埋め込まれたブラウザ404を使用して、図6bに示すようにサーバ104から受信したGUITARPORTホームページを表示する。GUITARPORTホームページが最初にギター・コントロール・パネル・グラフィカル・インターフェース600の下に表示される。図6bも参照すると、GUITARPORTホームページは、Features、News、Discussion、User Page、Guitar Tools、Musical Pieces(例えば、Newest Jamtrack)、およびTonesを含む。GUITARPORTホームページについては後で詳細に検討する。さらに、サーバ104でユーザ情報データベース109に記憶されているユーザに関する情報(例えば、具体的にはユーザの音楽の好み)に基づいて、サーバ104はユーザの音楽の好みに合うようにGUITARPORTホームページを作り替えることができる。例えば、ユーザの好みがロックンロールである場合、Newest Jamtrack(例えば、楽曲)は特定のロックンロールのTonesと共にロックンロールの楽曲に向けられる。さらに、GUITARPORTホームページの他の構成要素、例えばNews、Featuresなどをユーザの好みと連動させることもできる。ブロック512で、ユーザはToneまたは楽曲(例えばJamtrack)を選択することができる。ユーザがToneを選択した場合、ブロック514で方法500は図5bに進む。一方、ユーザが楽曲(例えばJamtrack)を選択した場合、ブロック516で方法500は図5cに進む。Jamtrackはサーバ104からダウンロードすることのできる1つのタイプの楽曲である。
本発明の方法および関連するコントロール・パネル・インターフェースの説明を助けるために、コントロール・パネル・グラフィカル・インターフェースの一部を次に検討する。次に図6aを参照する。図6aは、ギター600用コントロール・パネル・グラフィカル・インターフェースを具体的に説明するスクリーンショットである。上記のように、アプリケーション・ソフトウェア・モジュール402はコントロール・パネル・グラフィカル・インターフェース600を生成し、オーディオDSPソフトウェア・モジュール412と共に、ユーザがコントロール・パネル・グラフィカル・インターフェースの設定を変更する(または、設定はセッション・ファイルまたは事前定義されたパッチにより決定される事前に決めた設定に設定することができる)ことを可能にする。これによって、オーディオDSPソフトウェア・モジュール412は所望の設定と一致させるためにギター112からのオーディオ信号を処理する。ギター用のコントロール・パネル・グラフィカル・インターフェース600の設定を次に説明する。
コントロール・パネル・グラフィカル・インターフェース600は、ほとんどのギター増幅器に共通した複数の標準コントローラ・ノブ604を含むが、これには、ドライブ・コントロール・ノブ606、バス・コントロール・ノブ608、ミドル・コントロール・ノブ610、高音域コントロール・ノブ612、臨場感コントロール・ノブ614、およびボリューム・コントロール・ノブ616が含まれる。これらのコントロール・ノブはギターのサウンドを変更するためにユーザによって選択可能である。コントロール・パネル・グラフィカル・インターフェース600は、ギターからのオーディオ信号のパワーを増大させるためにブースト・スイッチ620をさらに含む。バイパス・ボタン622は選択されると、ギターからのそのままの未処理のオーディオ信号が使用されるようDSP処理を切る。比較ボタン624は選択されると、2つの異なるコントロール・パネル・グラフィカル・インターフェース構成を並べて比較することができる。コラプス・ボタン628は選択されると、コントロール・パネル・グラフィカル・インターフェース600のサイズを縮小する。ミュート・ギター・ボタン630は選択されると、ギターからのオーディオ信号を消音する。
Master Volumeダイヤル632はギター112のオーディオ信号のボリュームと現在処理中のいかなる他のオーディオ信号(例えば、オーディオ・ファイルからの)のボリュームの両方を制御する。ハム低減ボタン634を選択すると、ユーザはギター112とディスプレイ・デバイス204の間のハム干渉を低減させることができる。一度ハム低減ボタン634が選択され、学習ボタン636が押し下げられると、コンピューティング・デバイス102はギター112とディスプレイ・デバイス204の間のハム干渉を測定し(例えば、ユーザはユーザ自身のギターをディスプレイ・デバイスの隣に移動することができる)、DSP処理がそのハム干渉を補償してそれを除去する。ノイズ・ゲート・ボタン638は選択されると、ギターからの入力オーディオ信号が閾値以下である場合はこれを減衰させるが、これが閾値以上である場合はギターからのオーディオ信号を減衰させない。したがって、ノイズ・ゲート・ボタン638はギターを取り扱う際のノイズのようなものを除去するために使用することができる。左右スピーカの間でギターのサウンドをパンするためにギター・パン・スライド640を使用することができる。
さらに、上記のように、ユーザはトーンを選択することができ、またはユーザがユーザ自身の選択した楽曲に合わせるようにトーンを自動的に選択することができる。選択されるトーンのタイプはtoneフィールド642に示されている。ほとんどいかなるタイプのギター増幅器(例えば、MARSHALL、FENDER、VOX、ROLANDなど)、ほとんどいかなるタイプのスピーカ・キャビネット、およびほとんどいかなるタイプの効果に基づいて増幅器モデルを表すトーンを幾つでも再生することができる。例えば、AC/DCによるHells Bellsリズム・セクション、ヘビー・ファンクロック・リード、'64Fender Deluxeに対するトーンまたはいかなる他のトーンでもユーザは選択し(例えば、Top 10 Tones 685(図6b)を参照されたい)、または作成することができる。具体的には、ギター112からのオーディオ信号を変更するためのDSPアルゴリズムは当業者には周知であり、コンピューティング・デバイス102のソフトウェアで容易に実現することができるということを理解されたい。例えば、本発明の態様を実現するためにオーディオDSPソフトウェア・モジュール412で使用することのできる様々な増幅器とスピーカ・キャビネット構成をモデル化するためにギターからのオーディオ信号を変更するためのDSPアルゴリズムの一例は、参照により本明細書に組み込んだ「Tube Modeling Programmable Digital Guitar Amplification System」という名称の特許出願第5,789,689号に具体的に記載されている。
通常、トーンは、ギター増幅器、スピーカ・キャビネット、および複数の異なる効果ならびに他の設定により規定することができる。ここでもまた、トーンはユーザにより選択され、ユーザにより作成されることができ、または選択された楽曲に合うよう事前設定しておくことができる。モデル化中のギター増幅器トーンのタイプを増幅器モデル・フィールド644に示す(例えば、'90Marshall JCM−800)。モデル化中のスピーカ・キャビネット構成トーンをスピーカ・キャビネット・モデル・フィールド646に示す(例えば、4×12 '78 Marshall with Stock 70s)。スピーカ・キャビネット構成646は、増幅されたギターのサウンドでスピーカ・キャビネットの効果をエミュレートする。さらに、複数のデジタル再生された良く知られた効果ボックスは、トーンを作成するためにコントロール・パネル・グラフィカル・インターフェース600によって提供される。具体的には、圧縮効果ボックス650、遅延効果ボックス652、変調効果ボックス654(例えば、コーラス、フランジャー、ロータリー、トレモロなどを含む)、およびリバーブ効果ボックス656が提供される。効果ボックスは、通常、ギターと標準増幅器に結合されている追加のデジタル・オーディオ楽器プロセッサにある。また、この特定のコントロール・パネル・グラフィカル・インターフェース600は、遅延効果ボックス652が現在選択されていることを示しており、遅延時間660、フィードバック・パーセンテージ662、およびレベル・パーセンテージ664のような遅延効果の具体的な属性を示している。さらに、上記のように、ユーザはGUITARPORTオンライン・ボタン606を選択することによってGUITARPORTウェブサイトにログオンすることができる。
次に図6bを参照する。図6bは、本発明の一実施形態による、ユーザがサーバ104に正常にログオンした際にユーザに示される表示のスクリーンショットである。具体的には、アプリケーション・ソフトウェア・モジュール402と埋め込まれたブラウザ404は、サーバ104から受信したGUITARPORTホームページ670を表示する。これはコントロール・パネル・グラフィカル・インターフェース600の下に置かれ、サーバ104から受信したデータと共にユーザが要求した機能の多くを実行する。コントロール・パネル・グラフィカル・インターフェース600は、この場合は圧縮効果ボックスが既に選択されており、圧縮効果ウィンドウが示されていること(例えば、異なる圧縮率の選択を考慮して)を除いて図6aに示したものと同じであることに留意されたい。
図6bに示すように、GUITARPORTホームページ670は、Homeボタン671、Featureボタン672、Newsボタン673、Discussionボタン674、Usersボタン675、およびGuitar Toolsボタン676を含む。ユーザがHomeボタン671を選択した場合、ユーザにはGUITARPORTホームページが戻される。Featuresボタン672を押し下げることによりFeaturesページに移動するが、このページは、アーティストのインタビュー、スタジオ・ノート、およびユーザが有用と思う可能性のある音楽の分野に関する他の記事を含む。Newsボタン673を選択するとNewsページに移動するが、このページは特にその音楽の分野とギターに関するニュース記事を提供する。ユーザがDiscussionボタン674を選ぶと、掲示板に移動するが、この掲示板はいかなる主題でもよいが通常は特に音楽とギターに関するメッセージ(例えば、質問、回答、ニュース、記事など)をユーザが掲示することができる。Usersボタン675を選択すると、ユーザ自身のプロファイル(例えば、名前、アドレス、購入のタイプ、音楽の好み、など)をユーザが更新することができるユーザ・ページがユーザに提供される。Guitar Toolsボタン676を押し下げることによって、ユーザはユーティリティ・ページに移動するが、このページはCコードの場合の指使いは何か、増幅器の設定方法など、ギター演奏に関する情報をユーザに提供する。これは、よくある質問(FAQ)の列挙、検索可能なデータベース、ギターの専門家への電子メールによる質問などにより達成することができる。
GUITARPORTホームページには、新しい記事、インタビュー、ニュース、コード、ギター・リック、Newest Jamtracks(例えば、楽曲)、および最も人気の高いトーンへのリンクを表す選択可能なアイコンがある。例えば、図6bは、選択可能なStudio Notesアイコン・リンク678、679、選択可能なInterviewアイコン・リンク680、選択可能なToday’sNewsアイコン・リンク681、Chord of the Weekアイコン・リンク682、およびLick of the Weekアイコン・リンク683、ならびにNewest Jamtracks(例えば、楽曲)リンク684、およびToneリンク685を示している。さらに、上記のように、GUITARPORTウェブサイトは、サーバ104でユーザ情報データベース109に記憶されているユーザ情報(例えば、具体的にはユーザの音楽の好み)に基づいてユーザに合わせることができる。この情報により、サーバ104はユーザの音楽の好みに合わせるようGUITARPORTウェブサイトを作り替えることができる。例えば、ユーザの好みがロックンロールである場合、Newest Jamtracks 684(例えば、楽曲)をロックンロール楽曲と特定のTones685に向ける。さらに、GUITARPORTウェブサイトの他の構成要素は、ユーザの好み、例えばStudio Notes、Interviews、News、Chord of the Week、Lick of the Weekなどに連動させることもできる。
さらに、コントロール・パネル・グラフィカル・インターフェース600はGUITARPORTウェブサイトと対話するいくつかの選択可能なボタンを有する。図6bに示すように、GUITARPORTウェブサイトに接続するためのGUITARPORTオンライン・ボタン606は既に押し下げられている。Artist and Gearボタン687が用意されており、これは選択されるとユーザに選択可能なアーティストのリストを提供する。これにより、ユーザはアーティストの伝記を提供するアーティストに関して書かれた記事と、かれらが使用している楽器のタイプを見ることができる。Trackボタン688は選択されると、ユーザが選択できる楽曲(例えば、Jamtracks)のリストをユーザに提供する。ユーザによる楽曲(例えば、Jamtracks)の選択に応じて、サーバ104は、選択された楽曲に関連付けられたセッション・ファイルをコンピュータ・ネットワーク(例えば、インターネット)105を介してコンピューティング・デバイス102に送信する。セッション・ファイルはオーディオ・ファイルとマルチメディア・データとを含む。コンピューティング・デバイス102は、後で検討するように、ユーザにオーディオ・ファイルのマルチメディア・プレゼンテーションを提示するためにセッション・ファイルを処理する。Toneボタン689は選択されると、ユーザが選択できるトーンのリストをユーザに提供する。ユーザによるトーンの選択に応じて、サーバ104はパッチ情報(例えば、増幅器のタイプ、スピーカ・キャビネット、効果設定など)を送信する。これにより、コントロール・パネル・グラフィカル・インターフェース600は適切に構成され、DSPソフトウェア・モジュール412は適切なトーンをエミュレートするためにギター信号を適切に処理する。しかし、GUITARPORTウェブサイトへの接続があってもなくても、ユーザはあらかじめ記憶されているトーンと楽曲(例えば、Jamtracks)を使用することができるということを理解されたい。
また、コントロール・パネル・グラフィカル・インターフェース600はtunerボタン690を有しているが、このボタンは選択されるとユーザ自身のギターをユーザが調弦できるようにコンピューティング・デバイスが色チューナとして動作することができる。コントロール・パネル・グラフィカル・インターフェース600はHelpボタン691も有しているが、このボタンは選択されるとユーザに標準のヘルプ機能を提供する。さらに、コントロール・パネル・グラフィカル・インターフェース600は、以前に訪れたGUITARPORTウェブサイトのウェブページすべてをユーザが前後にトグルすることができる標準の前矢印と後矢印692と693を有している。
上記のように、ユーザがToneを選択すると、方法500は図5bに進む(ブロック514)。例えば、ユーザはTonesボタン689またはTop Tones 685(例えば、Heavy Funk Rock Lead(図6b)の1つを選択することにより提供されるToneの1つを選択することができる。図5bを参照する。図5bは、本発明の一実施形態による、ユーザにトーンを提供する方法501を示す流れ図である。ユーザによるトーンの選択に応じて、サーバ104はパッチ情報(例えば、増幅器のタイプ、スピーカ・キャビネット、効果設定など)をコンピューティング・デバイス102に送信する(ブロック518)。アプリケーション・ソフトウェア・モジュール402は、楽器(例えば、ギター)に対するトーンのサウンド特性をモデル化するようコントロール・パネル・グラフィカル・インターフェース600を適切な構成に設定する(ブロック520)。さらに、DSPソフトウェア・モジュール412は適切なトーンをエミュレートするためにギター・オーディオ信号を適切に処理する。したがって、ユーザはインターフェース・デバイス106を介してコンピューティング・デバイス102に接続されているユーザ自身のギター112を適切なトーンで演奏することができる。例えば、パッチは様々な録音アーティスト(例えば、Jimi Hendrix、Eric Clapton、Jerry Garcia、Chet Atkins、Robert Crayなど)に関するギター・トーンを表しても、ロック、カントリー、ジャズなど、様々なギターのスタイルを表すためにGUITARPORTウェブサイト用に特別に作成してもよい。
上記のように、ユーザが楽曲を選択した場合、方法500は図5cに進む(ブロック516)。例えば、ユーザはTracksボタン688またはNewest Jamtracks684の1つ(例えば、Welcome to the Jungle(図6b))を選択することにより提供される楽曲(例えば、Jamtracks)の1つを選択することができる。図5cを参照する。図5cは、本発明の一実施形態による、ユーザに楽曲を提供する方法503を示す流れ図である。具体的には、ユーザによる楽曲(例えば、Jamtrack)の選択に応じて、サーバ104は選択された楽曲(例えば、Jamtrack)に関連付けられたセッション・ファイルをコンピュータ・ネットワーク(例えば、インターネット)105を介してコンピューティング・デバイス102に送信する(ブロック524)。セッション・ファイルはオーディオ・ファイルとマルチメディア・データとを含む。
手短に図5dを参照する。図5dは、本発明の一実施形態による、セッション・ファイル539のコンテンツを示す図である。セッション・ファイル539は、楽曲(例えば、Jamtrack)に関連付けられたオーディオ・ファイル540を含む。楽曲のオーディオ・ファイル540は、通常はユーザが伴奏することを希望する歌である。オーディオ・ファイル540はフルソングであってよい(すなわち、すべての楽器トラックとボーカル・トラックを有する)。あるいは、オーディオ・ファイル540は1つまたは複数のトラックを除去することができる。例えば、1つまたは複数のギター・トラックを除去することができ、1つまたは複数のボーカル・トラックを除去することができ、1つまたは複数のベース・トラックを除去することができ、1つまたは複数のドラム・トラックを除去することができるなどである。例えば、後で検討するように、ユーザはギター・トラックを除去した楽曲(例えば、Jamtrack)を選択することができる。これによって、ユーザがギター・トラックを除去した歌を伴奏することができるように、オーディオ・ファイル540はコンピューティング・デバイス102とインターフェース・デバイス106により(例えば、増幅スピーカ120によって)ギター・トラックを除去して再生される。
さらに、セッション・ファイル539は、ユーザに対してマルチメディア情報をプレゼンテーションし、表示するためにJavaScriptを埋め込んだHTMLデータを含むマルチメディア・ブロック542を有する。具体的には、後でより詳細に検討する図6cを手短に参照すると、マルチメディア・データは、ユーザが演奏中のオーディオ・ファイル540に合わせて演奏することができるように歌または楽曲601の名前、およびリード・シート605に関連付けられた楽譜603を表すために、コンピューティング・デバイス102のアプリケーション・ソフトウェア・モジュール402と埋め込まれたブラウザ404とによって(コンピューティング・デバイス102の他のソフトウェア・モジュールと共に)処理することができる。マルチメディア・データ・ブロック542は、これらの機能を達成するために他のすべての必要なデータも含む。
セッション・ファイル539は、ギター112が関連付けられ選択された楽曲/オーディオ・ファイル540に合わせて適切なトーンまたはサウンドを有するように、パッチ情報を含むパッチ・ブロック544も含む。パッチ情報は、コントロール・パネル・インターフェース600のギター設定が選択された楽曲/オーディオ・ファイルに合わせて設定されるように増幅器のタイプ、スピーカ・キャビネット、効果設定などを含む。アプリケーション・ソフトウェア・モジュール402は、特定の楽曲/オーディオ・ファイル540に関してギター用のトーンのサウンド特性をモデル化するためにコントロール・パネル・グラフィカル・インターフェース600を適切な構成に設定する。さらに、DSPソフトウェア・モジュール412は、ギターのサウンドが楽曲/オーディオ・ファイル540に合うよう適切なトーンをエミュレートするためにギター信号を適切に処理する。
さらに、セッション・ファイル539は、選択された楽曲/オーディオ・ファイル540に対するテンポの変更、プログラムの変更、調号の変更、位置マーカなどを表すMIDIファイル546を含む。MIDIファイルは当技術分野では良く知られている。コンピューティング・デバイス102(例えば、アプリケーション・ソフトウェア・モジュール402を使用する)は、MIDIファイルでどのようなイベントが発生するかを決定する目的で現在のオーディオ再生位置をMIDIファイル内の対応するオーディオ・ファイル位置に変えるために、再生中にMIDIからのテンポ・マップを解釈する。オーディオ・ファイルの特定の位置に必要とされるコントロール・パネル・グラフィカル・インターフェース600の増幅器制御のために(例えば、DSPソフトウェア・モジュール412を使用してエミュレート中のギター用の特定のトーン)、増幅器、スピーカ・キャビネット、および効果設定などを選択するためのパッチ情報544を選択するためにMIDIファイルからのプログラム変更が使用される。ユーザに現在の調号を表示するためにMIDIファイル546からの調号の変更が使用される。楽曲の様々なポイントでイベントを表示させるためにMIDIファイル546のマーカが使用される。MIDIファイル546の各マーカにはテキスト・ラベルが割り当てられている。このラベルは、そのラベルに達した際に実行されるべきJavaScript機能に対応する。
例えば、図6cを手短に参照すると、楽曲(例えば、Jamtrack)LA Smooth Jazz in C 601とその関連する楽譜603とともにリードシート605が既にユーザによって選択されており、示されている。LA Smooth Jazz楽曲にはMIDIマーカが関連付けられている。MIDIマーカ607に対するテキスト・ラベル609は楽譜603の上に表示されており、セッション・ファイル539のMIDIファイル546から来ている。この例では、MIDIマーカ607のテキスト・ラベル609は、図示するように楽曲/オーディオ・ファイル540の異なる部分、すなわちイントロ、歌詞、ブリッジ、コーラス、ソロ 1などを表している。例えば、MIDIマーカ607はテキスト・ラベル609「Chorus」を有する場合がある。テキスト・ラベル609「Chorus」に対するMIDIマーカ607は、歌のコーラスが始まった時は何時でも楽譜603を表示させる(例えば、コード、楽譜、ギター・タブラチュア、歌詞など)。別の例として、図6cに示すように、イントロの楽譜603(例えば、コーラス)が示されている。したがって、コンピューティング・デバイス102が関連付けられたセッション・ファイル539からMIDIマーカ607を受信した場合、対応する機能を検索し、それに対するスクリプトを実行するJavaScriptを使用してMIDIマーカを処理する。JavaScriptは、通常、ピクチャをロードするか、またはディスプレイ・デバイスに何かを描く。この例では、JavaScriptは、「Intro」用のMIDIマーカ607を受信した際に、選択された楽曲、LA Smooth Jazz in Cのイントロの楽譜603(例えば、コード)を表示する。
方法503を示す図5cを参照すると、ブロック528で、ユーザにオーディオ・ファイル540のマルチメディア・プレゼンテーションを提示するために(例えば、楽譜603を含めて)、セッション・ファイル539(例えば、オーディオ・ファイル540とマルチメディア・データの残り)が処理される。これによって、ユーザはオーディオ・ファイル540のマルチメディア・プレゼンテーションに合わせてギター112を演奏することができる(ブロック530)。
図6cも参照すると、コンピューティング・デバイス102は再生中にピクチャ、テキスト、およびグラフィックスを表示することができる(例えば、ディスプレイ・デバイス204に)。例えば、コンピューティング・デバイスは楽譜603を表示することができる。これによって、楽曲/Jamtrackの再生中に(例えば、オーディオ・ファイル540を含めて)、楽曲の現在の位置が、通常は歌詞、調号、およびギター・タブラチュア(例えば、コード、楽譜、フィギュアリング図、など)のような他の情報と共に表示され、ユーザはオーディオ・ファイル540のマルチメディア・プレゼンテーションに合わせてユーザ自身のギター112を演奏することが可能になる。
例えば、図6cのこの例では、楽曲(例えば、Jamtrack)LA Smooth Jazz in C 601とその関連する楽譜603を有するリードシート605はユーザによって既に選択されており、GUITARPORTディスプレイ671に表示されている。この例では、MIDIマーカ607のテキスト・ラベル609が表示されており、図示するように楽曲/オーディオ・ファイル540の異なる部分、すなわちイントロ、歌詞、ブリッジ、コーラス、ソロ 1などを表している。図6cに示すように、イントロの楽譜603(例えば、コード)が示されている。この例では、JavaScriptは、「Intro」用のMIDIマーカ607を受信した際に、選択された楽曲LA Smooth Jazz in Cのイントロの楽譜603(例えば、コード)を表示する。
したがって、ユーザは楽譜603とオーディオ・ファイル540に合わせてユーザ自身のギター112を演奏することができる。オーディオ・ファイル540が進むに従い、ユーザが楽譜を読み、それに従って演奏することができるように楽譜603を自動的に更新することができる(例えば、楽曲の次の部分、ブリッジ、コーラス、ソロなど)。さらに、ユーザは、学習と即興演奏を可能にするためにギター・トラックがある場合とない場合のある楽曲/オーディオ・ファイル540のバージョンを選ぶことができる。さらに、上記のように、ボーカル、ドラム、ベースなどを除去した楽曲/オーディオ・ファイルを選ぶことができる。
さらに、パッチ・ブロック544はギター112が関連する楽曲/オーディオ・ファイル540と合う適切なトーンまたはサウンドを有するようにパッチ情報を含む。パッチ情報は、コントロール・パネル・インターフェース600のギター設定が選択された楽曲/オーディオ・ファイルと合うよう設定され、楽曲自体の変更にさえ対処することができるよう増幅器のタイプ、スピーカ・キャビネット、効果設定などを含む。これは、上記のようにMIDIマーカによってトリガすることができる。アプリケーション・ソフトウェア・モジュール402は、特定の楽曲または楽曲の一部に対するギター用トーンのサウンド特性をモデル化するために、コントロール・パネル・グラフィカル・インターフェース600を適切な構成に設定し、DSPソフトウェア・モジュール412は、ギターのサウンドが楽曲/オーディオ・ファイル540と合うよう適切なトーンをエミュレートするためにギター信号を適切に処理する。上記のように、ユーザのギターはコンピューティング・デバイス102によって電気的に経路指定され、これはコンピューティング・デバイス102が再生中のギターのサウンドを制御することができる。これによって、増幅器のモデル、その設定、およびいかなる効果でも楽曲/オーディオ・ファイル540を通して適宜、動的に変更することができる。図6cに示すように、選択されたLA Smooth Jazz in C楽曲のイントロと合うようジャズ・サウンドをエミュレートするために遅延設定の’90 Marshall JCM−800増幅器に基づく増幅器モデルが使用される。したがって、楽曲/Jamtrackの各部分に対して一致するパッチは、例えばコーラス中のあるトーンからソロ中の別のトーンに移行するために自動的に提供される。
図6cを参照して、本発明の他の特定の機能を指摘するためにGUITARPORTディスプレイ671の具体的な態様を検討する。図示するように、Trackボタン688が既に選択されており、楽曲LA Smooth Jazz in C 601がユーザによって選択されている。したがって、LA Smooth Jazz in C 601関連の楽譜603付きリードシート605がGUITARPORTディスプレイ671にさらに表示される。選択された楽曲(例えば、Jamtrack)LA Smooth Jazz in C 601の下には、楽曲を選択することのできる方法を制御するボタンがある。Web Loadボタン611は、ユーザがGUITARPORTウェブサイトから楽曲を選択し、それをユーザのコンピューティング・デバイス102にロードする(例えば、それをローカル・メモリに記憶する)ことができる。Hard Diskボタン613は、コンピューティング・デバイス102(例えば、ユーザのハードディスクに)に既にローカルに記憶されている楽曲をユーザが選択することができる。CDボタン615は、ユーザのコンピューティング・デバイス102のCDドライブでCDからユーザが楽曲を選択することができる。CDの歌が選択された場合、GUITARPORTサーバ104はそれが歌に関連するセッション・ファイル539を有するか否かを判定し、有する場合は、ユーザがそのように選んだならば、ユーザに歌のマルチメディア・プレゼンテーション(例えば、パッチ・ファイル、楽譜など)を提供する。
Jamボタン617は、ユーザによって選択されると、ユーザがそれに合わせて即興演奏できるように上記の楽曲(例えば、Jamtrack)のマルチメディア・プレゼンテーションを開始する。ミキサ・スライド619は楽曲のボリュームを制御する。現在演奏しているマルチメディア・プレゼンテーション(例えば、オートセレクト・オン)に関して自動的に選択されたコントロール・パネル・グラフィカル・インターフェース600(すなわち、増幅器設定)の事前に決められたパッチ設定を使用して、ユーザ自身の好みにコントロール・パネル・グラフィカル・インターフェース600設定(すなわち、増幅器設定)自体をユーザが設定したことに反して、オートセレクト・オン/オフ・ボタン621をトグルするために使用することができる。
楽曲(例えば、Jamtracks)およびループに対する典型的なタイマ表示623が従来のデジタル・マルチメディア制御機能625(例えば、再生、録音、停止、巻戻し、高速先送りなど)と共に提供される。Lick Learnerボタン627は選択されると、学習を容易にするために音の高さを変更せずに現在再生中の楽曲(例えば、Jamtrack)のテンポを減速する。また、楽曲のその部分の学習を容易にするために楽曲/Jamtrack(例えば、イントロ、コーラスなど)の現在の部分をループする(すなわち、反復的に再生する)Loopボタン629が用意されている。さらに、楽曲に関する情報を提供するトラック詳細631を選択することができる。例えば、録音された場合、アーティストに関する情報、どのタイプのギター、増幅器、および効果が使用されたか。その楽曲の出所、例えばSony、Aristaなど、またはその楽曲がGUITARPORTウェブサイト用に特別に作成されたものか否か(そして誰によって)に関する情報を提供するクレジット633を選択することができる。例えば、GUITARPORTウェブサイトにのみ、特定タイプの音楽、例えばロック、ブルース、ジャズ、カントリーなどの学習を容易にするために楽曲(例えば、Jamtracks)をカスタム作成することができる。
したがって、本発明は、ユーザがGUITARPORTウェブサイトからトーンおよび楽曲をダウンロードすることができるようにユーザ自身のギター112をユーザがインターフェース・デバイス106を介してコンピューティング・デバイス102に結合することができる。購入に伴いインターフェース・デバイス106はオンライン購入サービス(例えば、楽曲およびトーンのダウンロード)を入手する必要がある。インターフェース・デバイス106はユーザを一意に識別し、システム100の残りと共に、以下でさらに詳細に検討するようにユーザを許可し、オーディオ・ファイルを暗号化し、解読し、またアセットの購入を追跡するために使用される。さらに、ユーザによる楽曲(例えば、Jamtrack)の選択に応じて、サーバ104は楽曲に関連付けられたセッション・ファイル539をコンピュータ・ネットワーク105を介してコンピューティング・デバイス102に送信する。セッション・ファイル539は、オーディオ・ファイルのマルチメディア・プレゼンテーションをユーザに提示するためにコンピューティング・デバイスがセッション・ファイルを処理することができるようオーディオ・ファイルとマルチメディア・データを含む。コンピューティング・デバイス102は、ユーザがユーザ自身のギター112をオーディオ・ファイルのマルチメディア・プレゼンテーションに合わせて演奏することができるようにユーザにオーディオ・ファイルのマルチメディア・プレゼンテーション(例えば、楽譜603のスクローリングを含めて)を提示するためにセッション・ファイル539を処理する。さらに、ギターに似せた親しみ易いギター装置用の直観的なコントロール・パネル・グラフィカル・インターフェース600が提供される。コントロール・パネル・グラフィカル・インターフェース600は、標準制御付きの増幅器パネルを含み、これによってユーザは異なるトーンを達成するために複数の異なるタイプの増幅器から選択することが可能になる。同様に、一組の効果ボックスも設けられている。
上記のように、ユーザは楽譜603(例えば、コード、旋律、タビュラチュア(運指図)、歌詞など)を見ながら楽曲を聴くことができる。楽曲は、営利目的の楽曲およびギターの学習を容易にするためにGUITARPORTウェブサイトが使用するためだけに作成された楽曲の両方を含むことができる。ユーザは、練習を容易にするために、元のギター・トラックがある場合とない場合の楽曲のバージョンに合わせて即興演奏することができる。したがって、ユーザには、サーバ104からダウンロードすることのできる幅広い種類の楽曲(例えば、Jamtracks)への高速かつ容易なアクセスが提供される。この場合、ユーザは、学習を容易にするためにマルチメディア・プレゼンテーション形式で提示されるダウンロードされた楽曲に合わせて演奏することができる。
ユーザに、様々な異なるスタイルで多数の楽曲(例えば、Jamtracks)へのアクセスを提供する。楽曲は、既存のサウンド録音、既存のサウンド録音の再ミックス(ギター・トラックまたはボーカル・トラックなしの例)、既に発行されている著作権保護された歌の再録音されたバージョン、GUITARPORTウェブサイトに提供される元の歌(例えば、ギターの学習を容易にするために作成された歌)、ドラム・ループ、グルーブなどを含むことができる。さらに、即興演奏と練習を容易にするためにグルーブ(例えば、リズム・セクション、ドラムビートなど)を提供することができる。また、GUITARPORTウェブサイトは、楽曲(例えば、Jamtracks)の他に、複数の録音アーティストによるCD、プリント・シート・ミュージック、タビュラチュア、ギター用記譜、コード・チャート、歌詞、デジタル・シート・ミュージック、Tシャツ、音楽関連記事などのような多くの他の音楽関連アセットの販売も提供することができる。さらに、以下で詳細に検討するように、ダウンロードしたそれぞれの一意の楽曲またはトーン、またはいかなるタイプの購入でも、コンテンツのライセンシング・パートナー(例えば、著作権所有者)への正確な報告のために追跡され、再録音される。
本発明の実施形態は、ユーザを一意に識別し、コンピューティング・デバイス102が使用するために暗号化されたアセットを解読するためのセキュリティ・デバイス110をさらに提供する。したがって、セキュリティ・デバイスは認可された素材を無許可の複製から保護し、コンテンツ提供者に安全な収入の機会を提供する。アセットは、通常、オーディオ・ファイル(例えば、著作権保護されたサウンド録音)を含めて楽曲(例えば、Jamtracks)に関係しているが、アセットはコンピュータ・ネットワークを介して送信されたいかなる種類のデータ(例えば、マルチメディア、ビデオ、ムービー、音声、ソフトウェア、一般的なデータ形式など)であってもよいということを理解されたい。以下で詳細に検討するように、セキュリティ・デバイス110はコンピューティング・デバイス102やサーバ104と共に、多くの他の機能の他に、サーバ104がセキュリティ・デバイス110を一意に識別することを可能にし、許可されたセキュリティ・デバイス110に結合されたコンピューティング・デバイス102が許可されたセキュリティ・デバイス110が使用するために特別に暗号化されたアセットを解読することができる。後で検討するように、セキュリティ・デバイス110は、サーバ104に対して各セキュリティ・デバイス110を一意に識別するために、また許可されたセキュリティ・デバイスに結合されたコンピューティング・デバイス102でのみアセットが動作することを保証し、それによってコンテンツ提供者に安全な収入の機会を提供するために、埋め込まれた電子シリアル番号、ハードウェア暗号化およびキー記憶回路と組み合わされたユーザ・キーを含む。
次に図7aを参照する。図7aは、本発明の一実施形態によるセキュリティ・システム700を示している。上記のように、サーバ104は、コンピュータ・ネットワーク105を介してコンピューティング・デバイス102に結合されており、コンピューティング・デバイス102はI/Oリンク(例えば、USBリンク)を介してセキュリティ・デバイス110に接続されている。
セキュリティ・システム700のセキュリティ形態を強調するために示されたサーバ104は、セキュリティ・ソフトウェア・モジュール422、アプリケーション・ソフトウェア・モジュール416、サーバ・ソフトウェア・モジュール415、データベース・ソフトウェア・モジュール418、および本明細書には示さないが商業ソフトウェア・モジュール420を含む。さらに、コンピュータ・ネットワーク接続を介してサーバ104にはアセット・データベース107とユーザ情報データベース109が結合されている。
セキュリティ・システム700のセキュリティ形態を強調するためにさらに示されたコンピューティング・デバイス102は、セキュリティ・ソフトウェア・モジュール408とセキュリティ・ハードウェア・インターフェース・ソフトウェア704を含むアプリケーション・ソフトウェア・モジュール402を含む。セキュリティ・デバイス110は、セキュリティ・サービス706を実施するためにセキュリティ・サービス706とセキュリティ構成要素710とを含む。さらに、ローカル・アセット・ストレージ712、例えばハードドライブのようなローカル・メモリは、I/Oリンク714を介してコンピューティング・デバイス102に結合されているか、またはコンピューティング・デバイス102の一部である。ユーザが既にダウンロードしたアセット(例えば、オーディオ・ファイル)を記憶するためにローカル・アセット・ストレージ712を使用することができる。
セキュリティ・デバイス110は、セキュリティ・サービス706を実施するために使用することのできるセキュリティ構成要素710を含む。このようなセキュリティ・サービス706は、許可されたセキュリティ・デバイス110で作業しているユーザにのみサーバ104へのアクセスが許可されるようにサーバ104に対してセキュリティ・デバイス110を一意に識別することを含む。サーバ104と共にセキュリティ・デバイス110によって実行される別のセキュリティ・サービス706は、適切に許可されたセキュリティ・デバイス110に結合されているコンピューティング・デバイス102のみがアセットを受信し使用することができるように、アセット(例えば、オーディオ・ファイル)が適切に暗号化され、解読されることを保証する。
サーバ104を詳細に見ると、サーバ104は、後で検討するようにセキュリティ機能を実行するためのセキュリティ・プログラムとアルゴリズムを含んでいるセキュリティ・ソフトウェア・モジュール422を含む。セキュリティ・ソフトウェア・モジュール422は、ユーザを認証し、認証されたユーザに暗号化されたアセットを配信するために、サーバ104のクロック/カレンダおよび様々なデータベース、すなわちユーザ情報データベース109とアセット・データベース107からの情報を調整する。クロック/カレンダは、日付および時刻を正確に決定することができるサーバ・コンピュータ104の典型的な部分である。さらに、サーバ104はセキュリティ保護された動作環境で動作する(例えば、セキュア・ソケット・レイヤ(SSL)、S−HTTPなどを使用する)。
ユーザ情報データベース109は、サーバ104(例えば、一実施形態では、GUITARPORTウェブサイト購入者)にアクセスするよう登録されており、許可されているセキュリティ・デバイス110を有するユーザごとの購入と登録情報を含む。ユーザごとの購入情報は、後で検討するように、各セキュリティ・デバイス110の信頼性を判定し、アセットを暗号化し、解読するために必要とされるユーザの購入期限日とユーザのセキュリティ・デバイス110に対するユーザの一意のシリアル番号、ユーザ・キー、およびメモリ・キーを含む。
アセット・データベース107は、アセット(例えば、フルソングや様々な楽器トラックを除去した歌を含む上記のJamtracksのような楽曲およびオーディオ・ファイルに関連付けられたマルチメディア・プレゼンテーション)ならびにいかなる他の種類のデジタル・データ・アセットをも含んでいる。さらにアセット・データベース107は、アセットごとに(例えば、オーディオ・ファイルごとに)一意のアセット暗号キーを含む。また、アセット・データベース107は、購入または借りてコンピュータ・ネットワーク105を介してコンピューティング・デバイス102にダウンロードすることのできるいかなる他のアセットをも含むことができるということを理解されたい。
コンピューティング・デバイス102を詳細に見ると、コンピューティング・デバイス102は、具体的にはアプリケーション・ソフトウェア・モジュール402とセキュリティ・ソフトウェア・モジュール408を含む。セキュリティ・ソフトウェア・モジュール408は、後で検討するように、アセットを暗号化し解読するために標準の暗号化と解読ルーチンを含む。データによって擬似乱数をXORするために擬似乱数ジェネレータを使用するいかなる適切なブロック・モード暗号でも使用することができる。一部の例としては、データ暗号化標準規格(DES)、国際日付暗号化アルゴリズム(IDEA)などがある。さらに、セキュリティ・ソフトウェア・モジュール408は、後で検討するように、コンピューティング・デバイス102がサーバ104とセキュリティ・デバイス110の間の対話のコンジットとして使用され、特にサービス・デバイス110を認証することができる。しかし、アプリケーション・ソフトウェア・モジュール402とセキュリティ・ソフトウェア・モジュール408はセキュリティ保護された動作環境で実行するものとは仮定されない。
セキュリティ・ハードウェア・インターフェース・ソフトウェア704は、コンピューティング・デバイス102とセキュリティ・デバイス110の間に標準入出力インターフェース(例えば、USBインターフェース)を提供する。さらに、コンピューティング・デバイスは、アプリケーション・ソフトウェア・モジュール402がコンピューティング・デバイス102とセキュリティ・デバイス110の間の対話の日付と時刻を正確に判定することができる標準クロック/カレンダ(すなわち、ほとんどすべてのコンピューティング・デバイスに共通の)を使用する。
セキュリティ・デバイス110を詳細に見ながら次に図7bを参照する。図7bは、本発明の一実施形態による、セキュリティ・デバイス110の付属セキュリティ構成要素710を示している。図7bに示すように、セキュリティ・デバイス110は、マイクロプロセッサ340、セキュリティ論理380を有するセキュリティ保護されたメモリ379、セキュリティ・ファームウェア383を記憶するプログラム・ストレージ382、および不揮発性メモリ384(例えば、EEPROM)を含む。また、I/Oコントローラ716は、シリアルI/Oリンク114にそってコンピューティング・デバイス102への/からのデジタル・データのフローを制御する。一実施形態では、シリアルI/Oコントローラ716はUSBコントローラであってよく、シリアルI/Oリンク114はUSBリンクであってよい。シリアルI/Oコントローラ716によって制御されるデジタル・データには、後で検討するようにキー、アセット情報、その他のデータを含めることができる。
一般に、セキュリティ・ファームウェア383はセキュリティ保護されたメモリ379および不揮発性メモリ384と共にマイクロプロセッサ340によって実行された場合、サーバ104がセキュリティ・デバイス110を一意に識別することを可能にし、またコンピューティング・デバイス102がセキュリティ・デバイス110と共に、許可されたコンピューティング・デバイス102に結合されているコンピューティング・デバイス102が使用するために特に暗号化されたアセットを解読することができるセキュリティ保護されたオペレーションを提供する。セキュリティ保護されたメモリ379は、ハードウェアで実装されるセキュリティ論理380を使用して読み取り、書き込むためにロックし、ロック解除することのできる読み取り専用メモリ(ROM)と書き込み可能メモリの両方を含む。
セキュリティ・デバイス110のシリアル番号386に関連付けられたユーザ・キー387は、サーバ104に対してセキュリティ・デバイス110を認証するためにセキュリティ論理380によって使用される。また、メモリ・キー389は、セキュリティ保護されたメモリ379を最初にロック解除するためにセキュリティ論理380によって使用される。シリアル番号386、ユーザ・キー387、およびメモリ・キー389は製造過程でセキュリティ保護されたメモリ379に封印され、セキュリティ保護されたメモリ379が一度封印されたらその後は二度と書き込むことはできない。シリアル番号386、ユーザ・キー387、およびメモリ・キー389はサーバのユーザ情報データベース109にも記憶することができる。したがって、サーバ104は、以下でより詳細に検討するように、セキュリティ・デバイス110を一意に認証するために最初に要請と応答を生成し、セキュリティ保護されたメモリ379と不揮発性メモリ384を開き、ロックすることができる。
不揮発性メモリ384はセキュリティ保護されたメモリ379に対する拡張として使用される。セキュリティ保護されたメモリ379も既にロック解除されていない限り、ファームウェア383は不揮発性メモリ384へのアクセスを阻止する。不揮発性メモリ384は、ファームウェア383によって制御されるハードウェア書き込み保護を有する。不揮発性メモリ384は、特定の購入されたアセット(例えば、オーディオ・ファイル)に関連付けられたアセット暗号キー(例えば、オーディオ・ファイル・キー)のようなキー388、現在の日付とあるアセット390の購入申込日、およびアセット情報(例えば、アセットに関する情報)392を記憶する。シリアル番号386、ユーザ・キー387、メモリ・キー389、キー388、日付390、アセット情報392、また場合によってはファームウェア383もセキュリティ・デバイスのメモリのどれにでも、すなわちプログラム・ストレージ382、セキュリティ保護されたメモリ379、または不揮発性メモリ384のどれにでも置かれ、または同一場所に置くことができるが、この具体的な構成は一例に過ぎないといことを理解されたい。
さらに、後で検討するように、サーバ104のセキュリティ・ソフトウェア、コンピューティング・デバイス102、およびセキュリティ・デバイス110のファームウェアは、アセット、キー、日付、およびこれらのデバイスの間で送信される他のデータを暗号化し、解読するために標準の暗号化と解読ルーチンを含む。データによって擬似乱数をXORするために擬似乱数ジェネレータを使用するいかなる適切なブロック・モード暗号でも使用することができる。一部の例としては、データ暗号化標準規格(DES)、国際日付暗号化アルゴリズム(IDEA)などがある。
サーバ104、コンピューティング・デバイス102、およびセキュリティ・デバイス110の組み合わせによって実施される様々なセキュリティ機能を、次に図8a〜8iの流れ図を参照して検討する。
実行されるべきセキュリティ機能の1つは、セキュリティ・デバイス110に結合されているコンピューティング・デバイス102がサーバ104とその多くの機能(例えば、一実施形態ではGUITARPORTウェブサイト)にアクセスすることが許可されることを保証するために、サーバ104がセキュリティ・デバイス110を一意に識別することである。さらに、サーバ104は、サーバ104とそのアセット(例えば、オーディオ・ファイル)への無許可のアクセスを防止するために、セキュリティ・デバイス110の信頼性を判定する。これは、ユーザが最初にサーバ104へのログオンを試みた際に行われ、以後、定期的に実行することができる。この認証プロセスは、サーバ104が、サーバ104のセキュリティ・ソフトウェア・モジュール422によって実行されるスクリプト記述言語によってセキュリティ・デバイスにコード化された要請を発行することを含む。セキュリティ・デバイス110のファームウェア383は応答を生成するためにプログラムを実行する。許可されたセキュリティ・デバイス110は独自の応答を返し、セキュリティ・ソフトウェア・モジュール422を使用するサーバ104はその応答を妥当性検査する。応答が特定のセキュリティ・デバイス110に対して有効である場合、そのセッションは続けられる。応答が有効でない場合、そのセッションは終了する。
図8aを参照する。図8aは、本発明の一実施形態による、サーバ104がセキュリティ・デバイス110を認証するためのプロセス800を示す流れ図である。これらのプロセス・ステップ800は、一般に、サーバで他のソフトウェア・モジュールと共にサーバ104のセキュリティ・ソフトウェア・モジュール422によって実施される。まずサーバ104は、セキュリティ・デバイス110に対してセキュリティ・デバイス110のセキュリティ保護されたメモリ379に記憶されているシリアル番号386を要求する(ブロック802)。受信したシリアル番号に応じて、ブロック803ではサーバがそのシリアル番号がユーザ情報データベース109にあるか否かを判定する。ない場合、そのセッションは終了される(ブロック805)。しかし、シリアル番号がユーザ情報データベース109にある場合、サーバ104はユーザ情報データベース109からそのシリアル番号に対するユーザ・キーを入手する(ブロック806)。上記のように、ユーザ情報データベース109は各セキュリティ・デバイス110に関連付けられたシリアル番号ごとに一意のユーザ・キーを記憶する。サーバ104は、サーバ104のクロック/カレンダから時刻と日付も入手するが、これらは後で購入期限が切れているか否かを確認するために使用される(ブロック808)。
次に、サーバ104は、要請(ブロック810)と、セキュリティ・デバイス110からの予想される応答(ブロック812)とを計算する。要請は、基本的にセキュリティ・デバイス110が適切な応答を送信することによってそれ自体を正確に識別するための要求である。要請は、セキュリティ・デバイス110に関連付けられたユーザ・キー387に対して数学的変換を実行することによりサーバ104で作成される。セキュリティ・デバイス110で生成された応答がサーバ104で作成された応答と同じであるように(それが実際にはユーザに対するシリアル番号に関連付けられたセキュリティ・デバイスであると仮定して)、サーバ104とセキュリティ・デバイス110はどちらも同じ数学的変換を使用し、同じユーザ・キー387を有する。一実施形態では、サーバ104とセキュリティ・デバイス110に共通した数学的変換はいかなる適切な一方向ハッシング関数であってもよい。
次いで要請がサーバ104からセキュリティ・デバイス110に送信される(ブロック814)。次いでサーバ104はセキュリティ・デバイス110からの応答を待つ(ブロック816)。所定の期間が経過すると、プロセス800はタイムアウトし、セッションは終了する(ブロック817)。しかし、応答が所定期間内に受信された場合、サーバ104は、セキュリティ・デバイス110からの応答が予想される応答と一致するか否かを判定する(ブロック818)。一致しない場合、そのセッションは終了する(ブロック819)。一致した場合、ユーザはサーバ104へのログオンを許可され、プロセス800は完了する(ブロック821)。例えば、ユーザは上記のようにGUITARPORTウェブサイトにアクセスすることができる。
次に図8bを参照する。図8bは、本発明の一実施形態による、セキュリティ・デバイス110がサーバ104からの認証要請に応答するプロセス822を示す流れ図である。これらのプロセス・ステップ822は、一般にセキュリティ・デバイス110のファームウェア383の制御下で実施される。まず、ユーザ・キー389がセキュリティ保護されたメモリ379から入手される(ブロック824)。次に、ブロック826で、要請への応答が計算される。上記のように、応答は、通常、ユーザ・キー389の(これもサーバ104とセキュリティ・デバイス110に共通の)、サーバ104とセキュリティ・デバイス110の両方に共通の数学的変換である(例えば、一方向ハッシング関数)。次いでこの要請への応答がサーバ104に送信される(ブロック828)。次いでプロセス822は完了する(ブロック830)。
サーバ104、コンピューティング・デバイス102、およびセキュリティ・デバイス110の組み合わせによって実現される他のセキュリティ機能は、セキュリティ・デバイス110に記憶されている現在の日付および購入期限日の更新に関する。現在の日付と購入期限日390はセキュリティ・デバイス110の不揮発性メモリ384に記憶されている。サーバ104はセキュリティ・デバイス110の購入期限日と現在の日付390の両方を更新する。しかし、コンピューティング・デバイス102のアプリケーション・ソフトウェア・モジュール402は、サーバ104に接続していない場合でも現在の日付390を更新する。アプリケーション・ソフトウェア・モジュール402は安全であるとは見られないので、サーバ104は接続された際にセキュリティ保全のため購入期限日と現在の日付390を更新する。
図8cを参照する。図8cは、本発明の一実施形態による、サーバ104が現在の日付と購入期限日とともにセキュリティ・デバイス110を更新するプロセス832を示す流れ図である。これらのプロセス・ステップ832は、一般に、サーバ104で他のソフトウェア・モジュールと共にサーバ104のセキュリティ・ソフトウェア・モジュール422によって実施される。まず、ユーザ情報データベース109からの購入期限日がユーザに対して入手される(ブロック834)。次に、サーバ104のクロック/カレンダからの現在の日付が入手される(ブロック836)。次いで購入期限日と現在の日付が暗号化される(ブロック838)。さらに、サーバ104は、セキュリティ・デバイス・メモリ721を不揮発性メモリ384を含めてロック解除するためのコマンドをセキュリティ・デバイス110に送信する(ブロック840)。図8dは、後で検討するように、セキュリティ・デバイス・メモリ721をロック解除するプロセスを示している。セキュリティ・デバイス・メモリ721が既に正常にロック解除されているか否かに関するセキュリティ・デバイス110からの応答に基づいて、サーバ104はロック解除オペレーションが成功したか否かを判定する(ブロック842)。セキュリティ・デバイス・メモリ721が正常にロック解除されなかった場合、プロセス832は失敗する(ブロック844)。
しかし、セキュリティ・デバイス・メモリ721が正常にロック解除された場合、サーバ104は暗号化された購入期限日と現在の日付をセキュリティ・デバイス110に送信し、そこでセキュリティ・デバイス110は日付を更新する(ブロック846)。後で検討するように、図8eは、セキュリティ・デバイス110が日付を更新するプロセスを示している。次いでサーバは、セキュリティ・デバイス・メモリ721をロックするためにコマンドをセキュリティ・デバイスに送信する(ブロック848)。図8fと8gは、後で検討するように、セキュリティ・デバイス・メモリ721をロックするプロセスを示している。次いでプロセス832は完了する(ブロック850)。
図8dを参照する。図8dは、本発明の一実施形態による、サーバ104がセキュリティ・デバイス110のセキュリティ・デバイス・メモリ721をロック解除するプロセス852を示す流れ図である。ブロック854で、サーバ104はセキュリティ・デバイス110からシリアル番号386を入手する。次に、ブロック856で、サーバは、ユーザ情報データベース109からユーザに関するシリアル番号に関連付けられたメモリ・キー389を入手する。次いでサーバ104は、サーバ104のクロック/カレンダから現在の時刻と日付を入手する(ブロック858)。次いでサーバはセキュリティ・デバイス110から現在の暗号文を入手する(ブロック860)。現在の暗号文は、セキュリティ・デバイス110がサーバ104によって認証されるたびにセキュリティ・デバイス110によって生成される乱数である。
次にサーバ104は、セキュリティ・デバイス・メモリ721をロック解除するためのロック解除メッセージと、セキュリティ・デバイス110からの適切な予想される応答値とを計算する(ブロック862)。次いでサーバ104はメモリ・ロック解除メッセージをセキュリティ・デバイス110に送信する(ブロック864)。
ロック解除メッセージが有効である場合、すなわちそのセキュリティ・デバイス・メモリ371をロック解除するようセキュリティ・デバイス110に適切に命令するためにセキュリティ・デバイス110によって解読可能である場合(したがって、セキュリティ・デバイスとサーバのどちらも許可された参加者である)、セキュリティ・デバイス110はサーバ104に予想される応答を送り返す。サーバ104は、セキュリティ・デバイス110から返された適切な予想される応答が、それが許可されたセキュリティ・デバイス110であり、したがってセキュリティ・デバイス・メモリ371がロック解除されるということを検証するよう要求する。反対に、セキュリティ・デバイス110は、ロック解除メッセージに基づいてそのセキュリティ・デバイス・メモリ371をロック解除するようセキュリティ・デバイスに命令することがサーバ104に許可されていることを検証することができる。一実施形態では、メモリ・キー389と暗号文を使用するサーバ104で生成された系統的な予想された応答とセキュリティ・デバイス110で生成された応答は、ELVA社製の、同社がライセンスを有する独自開発の通信傍受防止アルゴリズムに基づくことができる。しかし、2人の関係者を正確に認証することができる適切な任意のゼロナリッジ・プルーフ・アルゴリズムを使用することができる。さらに、一実施形態では、ELVA通信傍受防止アルゴリズムを実施するセキュリティ論理380はATMEL社製の暗号デバイスであってよい。
この例を続けると、サーバ104はセキュリティ・デバイス110からの適切な応答を所定期間だけ待つ(ブロック866)。セキュリティ・デバイス110が所定期間で応答しなかった場合、プロセス852は失敗する(ブロック868)。サーバ104が時間内にセキュリティ・デバイス110から応答を受信した場合、ブロック870で、サーバ104はセキュリティ・デバイス110から予想される応答を既に受信しているか否かを判定する。受信していない場合、プロセス852は失敗する(ブロック872)。サーバ104がセキュリティ・デバイス110から予想される応答を受信した場合、サーバ104はセキュリティ・デバイス110のセキュリティ・デバイス・メモリ721が既にロック解除されていることを認識している。したがって、図8eを参照しながら後で検証するように、セキュリティ・デバイスがサーバ104から受信した現在および購入期限の日付を更新することができるようメモリがロック解除される。次いでプロセス852は完了する(ブロック873)。さらに、後で検証するように、アセット情報392、アセット・キー391などを記憶するなど多くの他の機能を実行するためにセキュリティ・デバイス・メモリ721をロック解除することができるということを理解されたい。
図8eを参照する。図8eは、本発明の一実施形態による、セキュリティ・デバイス110がサーバ104から受信した現在の日付と購入期限の日付を更新するプロセス874を示す流れ図である。ここでもまた、セキュリティ・デバイスは、その機能を実行するためにファームウェア383制御下で動作する。ブロック876で、セキュリティ・デバイス110は、サーバ104から受信した現在の日付と購入期限日を解読する。次に、ブロック878で、セキュリティ・デバイス110は、不揮発性メモリ384に現在の日付と購入期限日390とを記憶する。次いでプロセス874が完了する(ブロック880)。
図8fを参照する。図8fは、本発明の一実施形態による、サーバ104がセキュリティ・デバイス110のセキュリティ・デバイス・メモリ721の不揮発性メモリ384をロックするプロセス882を示す流れ図である。これを達成するために、サーバ104はセキュリティ・デバイス110にメモリ・ロック・コマンドを送信するだけである(ブロック884)。次いでプロセス882は完了する(ブロック886)。
サーバ104が不揮発性メモリ384をロックするためにメモリ・ロック・コマンドを送信した後、セキュリティ・デバイス110はセキュリティ保護されたメモリ379をロックすることができる。次に図8gを参照する。図8gは、本発明の一実施形態による、セキュリティ・デバイス110がセキュリティ保護されたメモリ379をロックするプロセス888を示す流れ図である。ブロック890で、セキュリティ・デバイス110はセキュリティ保護されたメモリ379がロック解除されているか否かを判定する。ロック解除されていない場合、すなわちセキュリティ保護されたメモリ379が既にロックされていることが示されている場合、プロセス888は完了する(ブロック899)。セキュリティ保護されたメモリ379がロック解除されている場合、セキュリティ・デバイス110はロック・メモリ・コマンドが既に受信されているか否かをチェックする(ブロック892)。受信されている場合、セキュリティ・デバイス110はセキュリティ保護されたメモリ379とセキュリティ論理380をロックし(ブロック894)、不揮発性メモリ384へのアクセスをディセーブルする(ブロック898)。次いでプログラム888は完了する(ブロック899)。
しかし、ブロック892でロック・メモリ・コマンドがまだ受信されていない場合、セキュリティ・デバイス110はメモリ・ロック解除時間が既に経過しているか否かをチェックする。経過していない場合、プロセス888は完了し、セキュリティ・デバイス110は後でセキュリティ・デバイス・メモリ721をロックすることができる(ブロック899)。一方、メモリ・ロック解除時間が既に経過している場合、セキュリティ・デバイス110はセキュリティ保護されたメモリ379とセキュリティ論理380をロックし(ブロック894)、不揮発性メモリ384へのアクセスをディセーブルする(ブロック898)。したがって、次いでプロセス888は完了する(ブロック899)。したがって、セキュリティ保護されたメモリ379が不揮発性メモリ384と同様に一度ロックされると、セキュリティ・デバイス・メモリ全体721がロックされる。したがって、アセット情報392、アセット・キー391などを記憶するために現在の日付と購入期限日を更新するようにセキュリティ・デバイス・メモリ721が既にロック解除された後で、これを再びロックすることができる。
上記のように、セキュリティ・デバイス110で現在の日付と時刻を更新するためにコンピューティング・デバイス102のアプリケーション・ソフトウェア・モジュール402とセキュリティ・ソフトウェア・モジュール408を使用することができる。しかし、これは安全ではなく、上記のように、これらの日付と時刻はサーバ104から受信した日付と時刻に対して常に詳細に調べられる。
次に図8hを参照する。図は、本発明の一実施形態による、コンピューティング・デバイス102のアプリケーション・ソフトウェア・モジュール402が他のソフトウェア・モジュールと共にセキュリティ・デバイス110で現在の日付を更新するプロセス801を示す流れ図である。ブロック805で、コンピューティング・デバイス102はセキュリティ・デバイス110が日付と時刻を要求しているか否かを判定する。要求していない場合、プロセス801は完了する(ブロック807)。しかし、セキュリティ・デバイス110が日付と時刻を要求している場合、コンピューティング・デバイス102はコンピューティング・デバイス102のクロック/カレンダから日付と時刻を入手する(ブロック809)。次いでコンピューティング・デバイス102はセキュリティ・デバイス110に日付と時刻を送信する(ブロック811)。次いでプロセス801は完了する(ブロック813)。
次に図8iを参照する。図8iは、本発明の一実施形態による、セキュリティ・デバイス110がコンピューティング・デバイス102から受信した現在の日付と時刻を更新するプロセス815を示す流れ図である。ブロック823で、セキュリティ・デバイス110は受信した現在の日付が購入期限日を経過しているか否かを判定する。経過している場合、セキュリティ・デバイス110は購入期限切れを(例えば、不揮発性メモリ384に)記録する(ブロック825)。次いでプロセス815は完了する(ブロック827)。次いでセキュリティ・デバイス110は、ユーザの購入期限が切れたことをユーザに表示するようコンピューティング・デバイス102に指示し、サーバ104は次の接続で購入を更新するようユーザに指示する。
一方、現在の日付が購入期限日を経過していない場合、セキュリティ・デバイス110は、コンピューティング・デバイス102のアプリケーション・ソフトウェア・モジュール402から受信した日付が最後の更新からサーバ104から受信した信頼ある日付と時刻に比較して有効か否かを判定する(ブロック829)。有効でない場合、セキュリティ・デバイス110はセキュリティ違反があったとものと見なし、購入期限切れを記録する(ブロック825)。次いでプロセス815は完了する(ブロック827)。ここでもまた、セキュリティ・デバイス110は、ユーザの購入期限が切れていることをユーザに表示するようコンピューティング・デバイス102に指示することができ、サーバ104は次の接続で購入を更新するようユーザに指示する。しかし、コンピューティング・デバイス102のアプリケーション・ソフトウェア・モジュール402からの日付がセキュリティ・デバイス110によって有効であると判定された場合、セキュリティ・デバイスは不揮発性メモリ384に日付と時刻390を記憶する(ブロック831)。次いでプロセス815は完了する(ブロック833)。
サーバ104と共にセキュリティ・デバイス110によって実行される別のセキュリティ・デバイス706は、適切に許可されたセキュリティ・デバイス110に結合されているコンピューティング・デバイス102だけがアセットを受信し、使用するためにデジタル・アセット(例えば、オーディオ・ファイル)が適切に暗号化され、解読されることを保証する。上記のように、アセット・データベース107は、アセット(例えば、楽曲に関連付けられたマルチメディア・プレゼンテーション、オーディオ・ファイル(例えば、フルソングや様々な楽器のトラックを除去した歌を含む上記のJamtracksのような))ならびに他のデジタル・データ・アセットを含んでいる。さらにアセット・データベース107は、アセットごとに(例えば、オーディオ・ファイルごとに)一意のアセット暗号キーを含む。さらに、アセット・データベース107は、購入または借りて、コンピュータ・ネットワーク105を介して許可されたセキュリティ・デバイス110に結合されているコンピューティング・デバイス102にダウンロードすることのできるいかなる他のタイプのデジタル・データ・アセット(例えば、マルチメディア・データ、ビデオ・データ、ボイス・データ、ソフトウェア、データの他の一般的な形式など)でも含むことができることを理解されたい。したがって、以下で使用されるように「アセット」という用語は、具体的にはオーディオ・ファイル(例えば、GUITARPORTウェブサイトに関して上記で述べたJamtracksなど)を含むが、いかなる他の種類のデジタル・アセットをもさらに含む。
本発明の実施形態はセキュリティ保護されたアセット配信システムをさらに提供する。認可された素材の無許可の複製から保護するために、アセットはセキュリティ・システム700により暗号化される(再び図7aも参照して)。各アセットはサーバ104のアセット・データベース107に記憶され、特別にそのアセットに対して異なる一意のアセット・キーで暗号化される。各アセットは、他のソフトウェア・モジュールと共にサーバ104のセキュリティ・ソフトウェア・モジュール422を使用して一意に暗号化される。それぞれの暗号化されたアセットが要求側のコンピューティング・デバイス102にストリーミングされる際、暗号化されたアセットがコンピューティング・デバイス102のアセット・ストレージ712に記憶される。さらに、そのアセット用のアセット・キーは、要求側のコンピューティング・デバイス102の関連するセキュリティ・デバイス100のユーザ・キーを使用して暗号化され、暗号化されたアセット・キーは要求側コンピューティング・デバイス102にもストリーミングされ、そこでコンピューティング・デバイス102のアセット・ストレージ712に記憶される。上記のように、各ユーザ・キー389は各ユーザのセキュリティ・デバイス110に対して一意であり、各ユーザ・キー389はセキュリティ・デバイス110とサーバ104のユーザ情報データベース109の両方に記憶される。
コンピューティング・デバイス102でアセットにアクセスする時、例えば、ダウンロードしたオーディオ・ファイル・アセット(例えば、ギターの学習を容易にするためにJamtrackに対するマルチメディア・プレゼンテーションの一部として)をユーザが再生することを希望した時には、セキュリティ・ソフトウェア・モジュール408はアプリケーション・ソフトウェア・モジュール402とコンピューティング・デバイス102の他のソフトウェア・モジュールと共に、暗号化されたアセット・キーを解読するためにセキュリティ・デバイス110に送信する。次いで解読されたアセット・キーがセキュリティ・デバイス110からコンピューティング・デバイス110に返送され、そこでコンピューティング・デバイス102によって使用され、そのアセット(例えば、オーディオ・ファイル)を解読してメモリに入れるためにアプリケーション・ソフトウェア・モジュール402や他のソフトウェア・モジュールと共にセキュリティ・ソフトウェア・モジュール408で再び動作する。次いで解読されたアセットが使用される。例えば、解読されたオーディオ・ファイルは再生するために圧縮解除することができる。
次に図9を参照する。図9は、本発明の一実施形態による、上記のようなセキュリティ保護されたアセット配信システム900の一例を示している。ブロック902で、アセット(A)904はアセット・キー(AK)906で暗号化される。暗号化されたアセット905(例えば、(EAK(A)))が次いでコンピューティング・デバイス102に送信され、そこでメモリ(例えば、アセット・ストレージ712)に記憶される(ブロック910)。また、ブロック920でアセット・キー(AK)906はユーザのユーザ・キー(UK)389で暗号化される。暗号化されたアセット・キー909(例えば、(EUK(AK)))が次いでコンピューティング・デバイス102に送信され、そこでメモリに記憶される(ブロック924)。ブロック930で、セキュリティ・デバイス110は、アセット・キー906(AK)を得るために、暗号化されたアセット・キー909をユーザの一意のユーザ・キー(UK)389(例えば、DUK[EUK(AK)])で解読し、そのアセット・キー906(AK)は次いでコンピューティング・デバイス102に転送される。次いでブロック932で、コンピューティング・デバイス102は、アセット(A)を得るために、暗号化されたアセット905をアセット・キー(AK)906(例えば、DAK[EAK(A)])で解読することができる。次いでこのアセットはコンピューティング・デバイス102のアプリケーション・ソフトウェア・モジュール402によって使用される。例えばアセットがオーディオ・ファイルである場合、そのオーディオ・ファイルは、ギターの学習を容易にするためにJamtrackのマルチメディア・プレゼンテーションの一部として再生するために圧縮解除することができる。暗号化と解読アルゴリズムは当技術分野では周知であり、様々なタイプの暗号化と解読アルゴリズムがサーバ104、コンピューティング・デバイス102、およびセキュリティ・デバイス110によって使用することができることを理解されたい。
サーバ104のセキュリティ・ソフトウェア、コンピューティング・デバイス102、およびセキュリティ・デバイス110のファームウェアは、アセット、キー、日付、およびこれらのデバイス間で送信された他のデータを暗号化し、解読するために標準の暗号化と解読ルーチンを含む。データによって擬似乱数をXORするために擬似乱数ジェネレータを使用するいかなる適切なブロック・モード暗号でも使用することができる。一部の例としては、データ暗号化標準規格(DES)、国際日付暗号化アルゴリズム(IDEA)などがある。
次に、本発明の一実施形態による、セキュリティ保護されたアセット配信システム900のさらに詳細な実施形態を検討する。上記のように、サーバ104はユーザに送信された各アセットを一意のアセット・キーで暗号化する。さらに、サーバ104は、そのアセットがユーザに貸されるのか所有されるのかに関する指示も送信する。貸されたアセットは、ユーザの購入期限が切れた時に期限切れとなり、購入後に使用することはできない。ユーザが所有しているアセットはユーザの購入期限が切れた後でも期限切れにはならない。サーバ104はさらに、アセットを解読するために要求される一意のアセット・キーを暗号化された形式でユーザに送信する。この場合、アセット・キーはユーザのためにセキュリティ・デバイス110のユーザ・キー389で暗号化されており、したがって、セキュリティ・デバイス110は暗号化されたアセット・キーを解読することができ、次いでコンピューティング・デバイス102はアセットへのユーザ・アクセスを提供するために解読されたアセット・キーでそのアセットを解読することができる。したがって、アセットは、特定のセキュリティ・デバイスを有する特定のユーザに安全に配信することができる。
コンピューティング・デバイス102は、アプリケーション・ソフトウェア・モジュール402、セキュリティ・ソフトウェア・モジュール408、その他のソフトウェア・モジュールと共に動作して、上記のようにアセットを解読し、アクセスすることに関する多くの機能を実行する。コンピューティング・デバイス102は、暗号化されたアセットと暗号化されたアセット・キーをローカル・メモリ(例えば、アセット・ストレージ712)で受信し、記憶する。コンピューティング・デバイス102は暗号化されたアセット・キー(また、アセットが借りられているか所有されているかの指示)をセキュリティ・デバイス110に送信する。ファームウェア383の制御下にあるセキュリティ・デバイス110は、アセット・キーを解読し、購入が期限切れになっているためにアセットが期限切れになっているか否かを判定する。アセットが期限切れになっていない場合、セキュリティ・デバイス110は解読されたアセット・キーをコンピューティング・デバイス102に送信し、したがってアセットはコンピューティング・デバイスによって解読し、次いで使用することができる。上記のように、コンピューティング・デバイス102は、アセットを得るためにアセットをアセット・キーで解読する。
一方、購入期限が切れている場合、セキュリティ・デバイス110はコンピューティング・デバイス102に通知し、コンピューティング・デバイス102は購入期限が切れていることをユーザに通知する。この機能を実現するための具体的なプロセス・ステップを次に検討する。
図10aを参照する。図10aは、本発明の一実施形態による、サーバ104がアセットを暗号化するプロセス1000を示す流れ図である。サーバ104は、後で検討するように、これらプロセスの機能を実現するために、アプリケーション・ソフトウェア・モジュール416、セキュリティ・ソフトウェア・モジュール422、その他のソフトウェア・モジュールの制御下で動作する。ブロック1002で、サーバ104はサーバ104のクロック/カレンダから時刻と日付を入手する。次にサーバ104は暗号キーを生成する(ブロック1004)。次いでサーバ104は一意のアセット・キーでアセットを暗号化する(ブロック1006)。次いでサーバ104は暗号化されたアセットとアセット・キーをアセット・データベース107に記憶する(ブロック1008)。次いでプロセス1000は完了する(ブロック1010)。
次に図10bを参照する。図10bは、本発明の一実施形態による、サーバ104がアセットを配信するプロセス1012を示す流れ図である。ブロック1014で、サーバ104は、アセット・データベース107からアセット、アセット・キー、およびアセットが所有されているか借りられているかの状態指示を入手する。状態指示は、レンタル・フラグとして実施することができる。例えばセットされたレンタル・フラグはユーザが借りているアセットに対応し、セットされていないレンタル・フラグはユーザが所有または購入したアセットに対応する。さらに、サーバ104はユーザ情報データベース109からユーザに対するユーザ・キー389を入手する(ユーザのセキュリティ・デバイス110に対応する)(ブロック1016)。次にサーバ104は、ユーザのユーザ・キー389を使用してアセット・キーおよびレンタル・フラグを暗号化する(ブロック1018)。次いでサーバ104は、暗号化されたアセット・キーとレンタル・フラグをコンピューティング・デバイス102に送信する(ブロック1020)。さらに、サーバ104は暗号化されたアセットをコンピューティング・デバイス102に送信する(ブロック1022)。次いでこのプロセス1012は完了する(ブロック1024)。
次に図10cを参照する。図10cは、本発明の一実施形態による、コンピューティング・デバイス102がセキュリティ・デバイス110からアセット・キーを抽出する機能を実行するプロセス1026を示す流れ図である。コンピューティング・デバイス102は、後で検討するように、これらプロセスの機能を実現するために、アプリケーション・ソフトウェア・モジュール402、セキュリティ・ソフトウェア・モジュール408、その他のソフトウェア・モジュールの制御下で動作する。ブロック1028で、コンピューティング・デバイス102は、サーバ104から受信した暗号化されたアセット・キーとレンタル・フラグをセキュリティ・デバイス110に送信する。次に、コンピューティング・デバイス102はセキュリティ保護されたデバイス110から応答を入手する(ブロック1030)。応答はアセットが期限切れになっているか否かに関する通知を含んでおり、アセットが期限切れになっていない場合は解読されたアセット・キーも含む。セキュリティ・デバイス110での応答の生成については、図10eを参照して後で検討する。
ブロック1032で、コンピューティング・デバイス102は、セキュリティ・デバイス110からの応答に基づいて、アセットへのアクセスが期限切れになっているか否かを判定する(ブロック1032)。例えば、アセットが借りられており、購入が期限切れになっている場合(すなわち、現在の日付がそのアセットの購入期限日を経過している場合)、アセットへのアクセスは既に期限切れになっている。したがって、アセットへのアクセスが期限切れになっている場合、ブロック1034で、コンピューティング・デバイス102はそのアセットへのアクセスが既に期限切れになっている旨をユーザに通知する。アセットへのアクセスがまだ期限切れになっていない場合(すなわち、アセットが所有されているか、または購入期限日が過ぎていない場合)、コンピューティング・デバイスはセキュリティ・デバイス応答からアセット・キーを抽出する(ブロック1036)。次いでプロセス1026は完了する(ブロック1038)。
次に図10dを参照する。図10dは、本発明の一実施形態による、コンピューティング・デバイス102がアセットを解読する機能を実行するプロセス1040を示す流れ図である。ブロック1042で、コンピューティング・デバイス102は、セキュリティ・デバイス110から受信したアセット・キーで解読アルゴリズムを初期化する。次に、コンピューティング・デバイス102は暗号化されたアセットをメモリにロードする(ブロック1044)。次いでコンピューティング・デバイス102は、暗号化されたアセット(すなわち、アセット・キーで暗号化されている暗号化されたアセット)を解読するために、セキュリティ・デバイス110から受信したアセット・キーを使用して暗号化されたアセットのメモリ・コピーを解読する(ブロック1046)。したがって、コンピューティング・デバイス102によって使用するためにアセットがコンピューティング・デバイス102に得られる。次いでアセットはコンピューティング・デバイス102のアプリケーションによって使用することができる。例えば、アセットがオーディオ・ファイルである場合、そのオーディオ・ファイルは、上記のように、ギターの学習を容易にするようにJamtrackのマルチメディア・プレゼンテーションの一部として再生するために圧縮解除することができる。
次に図10eを参照する。図10eは、本発明の一実施形態による、セキュリティ・デバイス110がアセット・キーを抽出するプロセス1050を示す流れ図である。上記のように、セキュリティ・デバイス110はファームウェア383の制御下で動作する。ブロック1052で、セキュリティ・デバイス110はコンピューティング・デバイス102から暗号化されたアセット・キーとレンタル・フラグを受信する。暗号化されたアセット・キーとレンタル・フラグはユーザ・キーで暗号化されている。次いでセキュリティ・デバイス110は不揮発性メモリ384からユーザ・キー389を入手する(ブロック1054)。次に、セキュリティ・デバイス110は、ユーザ・キー389でアセット・キーとレンタル・フラグを解読する(ブロック1056)。
次いでセキュリティ・デバイスはアセットが借りられているか否かを判定する(ブロック1058)。借りられていない場合(すなわち、所有されている場合)、セキュリティ・デバイス110は解読されたアセット・キーをコンピューティング・デバイス102に返し(ブロック1060)、プロセス1050は完了する(ブロック1068)。しかし、アセットが借りられている場合、セキュリティ・デバイス110は購入が既に期限切れになっているか否か(すなわち、現在の日付がアセットに対する購入期限日を経過しているか否か)を判定する(ブロック1062)。期限切れになっていない場合、セキュリティ・デバイス110は解読されたアセット・キーをコンピューティング・デバイス102に返し(ブロック1060)、プロセス1050は完了する(ブロック1068)。しかし、購入が期限切れになっている場合、セキュリティ・デバイス110は購入が期限切れになっているという指示と共に応答をコンピューティング・デバイス102に返す(ブロック1064)。次いでプロセス1050は完了する(ブロック1068)。
サーバ104のセキュリティ・ソフトウェア、コンピューティング・デバイス102、およびセキュリティ・デバイス110のファームウェアは、上記のように、アセット、キー、日付、およびこれらのデバイス間で送信された他のデータを暗号化し解読するために標準の暗号化と解読ルーチンを使用するということを理解されたい。データによって擬似乱数をXORするために擬似乱数ジェネレータを使用する任意の適切なブロック・モード暗号でも使用することができる。一部の例としては、データ暗号化標準規格(DES)、国際日付暗号化アルゴリズム(IDEA)などがある。
したがって、上記のように、セキュリティ保護されたアセット配信システムは、特定のユーザ/購入者に関連付けられた適切に許可されたセキュリティ・デバイスに結合されたコンピューティング・デバイスだけがアセットを受信し、使用することができるようにデジタル・アセットが暗号化され、解読されることを保証する。本発明の実施形態は、セキュリティ保護されたアセット配信システムであって、デジタル・アセットはセキュリティ保護されたサーバ104によって適切に暗号化されており、適切に許可されたセキュリティ・デバイス110に結合されているコンピューティング・デバイス102によってのみ解読することができるシステムを提供する。この結果、この適切に許可されたコンピューティング・デバイス102だけがアセットを受信し、使用することができ、したがって、認可された素材の無許可の複製から保護される。上記のように、一実施形態では、アセット・データベース107は、アセット(例えば、楽曲に関連付けられたマルチメディア・プレゼンテーション、フルソングや様々な楽器のトラックを除去した歌を含むJamtracksのようなオーディオ・ファイル)、ならびに他のデジタル・アセットを含んでいる。例えば、一実施形態では、アセットがオーディオ・ファイルである場合、上記のようにオーディオ・ファイルはギターの学習を容易にするために、Jamtrackのマルチメディア・プレゼンテーションの一部として再生するために圧縮解除することができる。さらに、アセット・データベース107は、購入または借りられて、コンピュータ・ネットワーク105を介してコンピューティング・デバイス102にダウンロードすることのできるいかなる他のデジタル・アセット(例えば、マルチメディア、ビデオ、ムービー、ボイス、サウンド録音、ソフトウェア、データの他の一般的な形式など)を含むことができるということを理解されたい。
上記の機能を実行するために上記本発明の様々な形態を1つまたは複数の命令(例えば、ソフトウェア・モジュール、プログラム、コード・セグメントなど)として実装することができる。プロセッサによって読み取られ、実行された場合にこの命令は、本発明の実施形態を実施し、かつ/または使用するために必要なオペレーションをプロセッサに実行させる。一般に、この命令は、機械可読媒体、デバイス、またはメモリ、データ・ストレージ・デバイスおよび/または遠隔デバイスのような担体の形式で有形に実装され、かつ/またはこれらから読み取り可能である。命令は、動作中に使用するために、メモリ、データ・ストレージ・デバイス、および/または遠隔デバイスからコンピューティング・デバイス102、サーバ104、およびインターフェース・デバイス106のメモリにロードすることができる。命令をプログラムした汎用プロセッサまたは専用プロセッサに本発明のステップを実行させるために命令を使用することができる。あるいは、本発明の特徴またはステップは、ステップを実行するためのハードワイヤード論理を含んでいる特定ハードウェア構成要素により、またはプログラムされたコンピュータ構成要素と特定用途向けハードウェア構成要素のいかなる組み合わせにより実行することができる。以上、本発明の実施形態をワールドワイドウェブの参照により説明したが、本明細書に記載した方法、システム、および装置は、他のネットワーク基盤または他のデータ通信システムにも同様に適用可能である。
以上、本発明およびその様々な機能上の構成要素を具体的な実施形態で説明したが、本発明の実施形態はハードウェア、ソフトウェア、ファームウェア、ミドルウェア、またはこれらの組み合わせで実現することができ、システム、サブシステム、コンポーネント、またはこれらのサブコンポーネントで使用することができるということを理解されたい。ソフトウェアで(例えば、ソフトウェア・モジュールとして)実施される場合、本発明の要素は必須のタスクを実行するための命令/コード・セグメントである。プログラムまたはコード・セグメントは、プロセッサ可読媒体またはコンピュータ・プログラム製品のような機械可読媒体に記憶しても、搬送波形式で実施されるコンピュータ・データ信号または搬送波によって変調された信号により伝送媒体または通信リンクを介して送信してもよい。機械可読媒体またはプロセッサ可読媒体は、機械(例えば、プロセッサ、コンピュータなど)により可読であり実効可能な形式で情報を記憶または転送することができる任意の媒体を含むことができる。機械/プロセッサ可読媒体の例としては、電気回路、半導体メモリ・デバイス、ROM、フラッシュ・メモリ、消去可能なプログラム可能ROM(EPROM)、フロッピー・ディスケット、コンパクト・ディスクCD−ROM、光ディスク、ハードディスク、光ファイバ媒体、無線周波数(RF)リンクなどが含まれる。コンピュータ・データ信号は、電子ネットワーク・チャネル、光ファイバ、空中、電磁気、RFリンクなどのような伝送媒体を介して伝播することのできるいかなる信号でも含むことができる。コード・セグメントは、インターネット、イントラネットなどのようなコンピュータ・ネットワークを介してダウンロードすることができる。
以上、本発明を例示の実施形態を参照しながら説明したが、この説明は限定的な意味で解釈されることを意図するものではない。本発明に関係する当業者には明白な、例示の実施形態の様々な修正形態ならびに本発明の他の実施形態は、本発明の趣旨および範囲に含まれるものと見なされる。