【解決手段】方法は、第1の音楽イベントを符号化する第1のコマンドを生成することと、第1のコマンドに対応する第1のメッセージを生成することであって、第1のメッセージは第1の音楽イベントの第1の音響属性タイプおよび第1の音響属性値を符号化し、第1の音響属性値は第1の音響属性タイプの第1の値を指定することと、第1のコマンドに対応する第2のメッセージを生成することであって、第2のメッセージは第1の音楽イベントの第2の音響属性タイプおよび第2の音響属性値を符号化し、第2の音響属性値は、第2の音響属性タイプの第2の値を指定することと、第1の音楽イベントの発生の時刻を意味するタイムスタンプデータを生成することと、タイムスタンプデータ、第1のコマンド、第1のメッセージおよび第2のメッセージを計算機に送ることとを含む。
前記第1のコマンドは、外部サウンドジェネレータによって受け取られるとき、前記外部サウンドジェネレータに音符を演奏させる、「ノートオン」コマンドを含む、請求項1に記載の方法。
前記音楽入力装置によって第2の音楽イベントを符号化する第2のコマンドを生成することと、前記タイムスタンプデータは、前記第2のコマンドを前記第1の音楽イベントの前記発生の前記時刻と関連付けることとをさらに含む、請求項1に記載の方法。
前記音楽入力装置によって、前記第2のコマンドに対応する第3のメッセージを生成することであって、前記第3のメッセージは、前記第2の音楽イベントの第3の音響属性タイプおよび第3の音響属性値を符号化し、前記第3の音響属性値は、前記第3の音響属性タイプの第3の値を指定し、前記第3のメッセージは、前記第3の音響属性タイプを符号化するために第1の数のビットを使用し、前記第3の音響属性タイプと関連付けられた前記第3の音響属性値を符号化するために第2の数のビットを使用すること
をさらに含む、請求項9に記載の方法。
前記デジタル表現は、外部サウンドジェネレータによって受け取られるとき、前記外部サウンドジェネレータに前記タイムスタンプデータと関連付けられた前記タイミングで音符を演奏させる、「ノートオン」コマンドを含む、請求項11に記載の楽器。
前記少なくとも1つのプロセッサは、前記少なくとも1つのプロセッサの第1のクロックを前記計算機の第2のクロックと同期させるのにさらに有効である、請求項11に記載の楽器。
【発明を実施するための形態】
【0010】
以下の説明で、本開示のいくつかの実施形態を例示する添付図面を参照する。本開示の趣旨および範囲から逸脱することなく、他の実施形態を利用することができ、システムまたはプロセス変更をなし得ることを理解するべきである。以下の詳細な説明を限定的な意味でとるべきではない。図面は必ずしも原寸に比例して描かれていないことを理解するべきである。
【0011】
本開示のさまざまな実施形態は、演奏データの正確な取込みおよび再生のための改良されたシステムおよび方法を提供する。本明細書に記載のように、これらの実施形態は、演奏データの取込みおよび再生の時間および空間精度を向上させることができる。加えて、本明細書に記載のさまざまな実施形態は、個別のコマンドを指定することについて、ならびに演奏データを作成および編集するために複数のコマンドを互いに連鎖させることについての標準化された方式を提供することができる。加えて、本明細書に記載のさまざまな実施形態は、ジッタを解消して演奏データの取込みおよび再生の時間精度を向上させるために1つまたは複数のコマンドを特定のタイミングと関連付けるのに有効であり得る。加えて、本明細書に記載のさまざまな実施形態は、以前は考慮されず従来システムでは失われていた、微妙な陰影に富んだ音楽表現力を表すのに十分ロバストな演奏データの標準化された数値表現を提供することができる。
【0012】
本明細書に記載の実施形態は、演奏データの時間精度、空間精度、および表現力が改善された、演奏データの取込み、記憶、および伝送のための手法を提供することができる。加えるに、本明細書に記載の実施形態は、拡張可能であってもよく、使用および実装の容易さを維持しつつ進歩的な特徴の実装を可能にすることができる。
【0013】
演奏データに適用される場合、「時間精度」は、演奏の動作が時間的にどれほど正確に配置されるかを示す。分解能(イベントの時刻をどれほど正確に測定することができるか)に加えて、完全なシステムとの関連で重要な2つの付加的な時間単位は、レイテンシ(演奏動作と認知される音との間の遅延の量)およびジッタ(レイテンシの不規則変動の量)である。レイテンシは、演奏において避けられない場合がある。空気中の音速は、毎秒およそ1000フィートである。ギターアンプから10フィートに立っているギタリストは、10ミリ秒の音響レイテンシを体験する。一般に、少量のレイテンシは、そのレイテンシが予測可能である限り、演奏者に受け入れられる。演奏者は、レイテンシの著しい変化をテンポの変化として「感じる」。そのようなものとして、大量のタイミングジッタは演奏を困難にする。
【0014】
デジタルオーディオ(およびごく最近では、デジタル・オーディオ・ワークステーション(「DAW」))の出現で、音楽アプリケーションにおける時間精度に対する望ましい性能測定基準は、「サンプル正確度」になった。用語「サンプルの正確な」は、1つのデ
ジタル・オーディオ・サンプル期間と等しい、または1つのデジタル・オーディオ・サンプル期間よりも良い時間精度で、音楽データを取り込んで再生するための能力と本明細書に定義される。例えば、48kHzプロフェッショナルオーディオ録音は、20マイクロ秒にほぼ等しいサンプル期間を有する。同様に、96kHzハイ・レゾリューション・オーディオ録音は、10マイクロ秒にほぼ等しいサンプル期間を有する。サンプルの正確なシステムの顕著な特徴は、楽曲またはマルチトラック録音が、それが演奏されるたびにまったく同じに聞こえるようになる。本明細書の説明は、サンプル正確度を伴って演奏の取込みおよび再現を両方ともできるシステムおよび方法について説明する。
【0015】
用語「デジタル・オーディオ・ワークステーション」は、音楽コンテンツを作曲、録音、および/または編集するためのシステムと定義され、通常、少なくとも1つのデジタル・オーディオ・インタフェースが装備されたデスクトップコンピュータ上で稼働するソフトウェアとして実装される。完全なシステムがDAWソフトウェアおよびそれが稼働するコンピュータに限定されているとき、最新のDAWはサンプル正確度を達成する。(例えば、音符を使用して)楽曲がDAWソフトウェアに直接入力され、結果として生じるオーディオがDAWソフトウェア内で完全にレンダリングされる限り、サンプル正確度が達成される。同様に、マルチ・トラック・デジタル・オーディオの形でDAWに録音された演奏もまた、サンプルの正確な再生を達成する。
【0016】
DAWに演奏データを提供するために外部入力装置または外部サウンドジェネレータがシステムに組み込まれるとき、DAWモデルのサンプル正確度が損なわれる。これらの外部機器は、DAWと外部機器との間の通信のために一般に使用されるMIDIプロトコルにちなんで、一般に「MIDI機器」と呼ばれる。MIDIプロトコルとコンピュータ・オペレーティング・システム制限との組合せは、(外部入力装置からの)演奏データの録音および(外部サウンドジェネレータへの)演奏データの再生に著しい時間的誤差をもたらすことがある。外部サウンドジェネレータは、例えば、演奏データを受け取って再生するのに有効な機器とすることができる。
【0017】
機器間で演奏データを転送するために使用されるとき、MIDIは厳密にリアルタイムプロトコルである。換言すれば、MIDI対応入力装置は、演奏データをそのデータを生成した入力イベントに可能な限り時間的に接近して伝送しようとすることになる。結果として、達成される時間精度は、入力装置のあらゆるハードウェアおよびソフトウェア制限、受取り機器のあらゆるハードウェアおよびソフトウェア制限、ならびに機器間の物理的接続性のあらゆる制限に依存する。
【0018】
いくつかのMIDI実装で、DIN MIDI相互接続が機器間の接続性のために使用される。インタフェースがアイドル状態であるならば、DIN MIDI上の新しいイベントの伝送は、(1ビット期間を32マイクロ秒に等しいものとして)1ビット期間以内に開始することができる。これはそれほどサンプルが正確でないが、それは非常に良い時間精度を表す。DIN MIDIの主要な制限は、その比較的低いデータ伝送能力である。音符の開始を知らせる、単一の「ノートオン」イベントのための伝送時間は、およそ320マイクロ秒である。データは連続して伝送され、そのようなものとして本当に同時のイベントは不可能である。例えば、三和音を演奏することは、3つの個別の「ノートオン」イベントを960マイクロ秒にわたって引き延ばす。エクスプレッションデータなどの、任意の付加的なデータを加えることにより、時間精度はさらに低下する。
【0019】
いくつかのMIDI機器は、DIN MIDIに対する代替の物理インタフェースとしてユニバーサル・シリアル・バス(「USB」)を提供する。DIN MIDIと比較して、USBは改善されたデータ伝送能力を提供する。USBは、データ転送を1フレームの期間が1000マイクロ秒であるフレームに編成する。そのようなものとして、USB
上のMIDIの時間精度は、従来のDIN MIDIよりも悪い場合がある。例えば、2つの「ノートオン」イベントは、ほとんど同時に生成され得るが、USBを介して伝送されるときに2つのUSBフレーム間で分けられて、2つのノート・オン・イベント間の1000マイクロ秒の時間的誤差をもたらす場合がある。いくつかのさらなる実施例で、機器間の物理インタフェースとして高速USBを使用することができる。高速USBは、1つのマイクロフレームの期間を125マイクロ秒として、データ転送フレームを8つのマイクロフレームに分割する。高速USB上で転送されるMIDIは、1000マイクロ秒のUSBフレームに対して改善された時間精度を提供するが、まだサンプル正確度が不十分である。
【0020】
さまざまな実施例で、時間的誤差の第2の重要な原因は、受取り機器が典型的なデスクトップコンピュータ環境で稼働するデジタル・オーディオ・ワークステーションであるときに存在する。DAWソフトウェアは、入力装置から演奏データを直接受け取らない。その代わりに、コンピュータ・オペレーティング・システム内のデバイスドライバがデータを受け取り、そのデータを待ち行列に配置する。データの待ち行列は、オペレーティング・システム・アプリケーション・プログラミング・インタフェース(API)を介してDAWソフトウェアに移される。DAWソフトウェアが呼ばれるとき、待ち行列には、さらなるレイテンシおよび/またはジッタをもたらす、それらのメッセージを生成したイベントの相対的タイミングについての情報を持たないいくつかのメッセージが入っている場合がある。
【0021】
物理インタフェースおよびデスクトップ・コンピュータ・オペレーティング・システムの制限が結びついて、完全なシステムで通常約1000マイクロ秒以上のジッタで、かなりの量のランダムジッタを含む時間的誤差を作り出す。デスクトップコンピュータとともに使用されるMIDI機器のために時間精度を改善する方法として、タイムスタンプ対応MIDIインタフェースが提供されている。このようなMIDIインタフェースは、MIDI機器とDAWを稼働させているコンピュータとの間に配置される。このようなMIDIインタフェースは、演奏動作を受け取って演奏動作を表す演奏データを生成することができず、入力装置またはコントローラとDAWまたは計算機との間のインタフェースとしてのみ機能する。MIDIインタフェースからコンピュータへの物理的接続は、通常、USBなどの高速バスである。MIDI機器からMIDIインタフェースへの接続は、従来のDIN MIDIである。MIDI機器それ自体は変化しておらず、リアルタイムで動作する。リアルタイム演奏データがMIDIインタフェースにおいて受け取られるとき、インタフェースは、DAWを稼働させているコンピュータにデータを移す前にデータが受け取られた実時間を示すタイムスタンプを付与する。しかしながら、MIDI機器とMIDIインタフェースとの間の物理インタフェースを介してもたらされるレイテンシおよびジッタが存続する。
【0022】
<空間精度>
演奏データに適用される場合、「空間精度」は、演奏の物理作用がどれほど正確に取り込まれるかを示す。換言すれば、空間精度は、音楽イベントと関連付けられたパラメータ(例えば、音符の減衰速度、ラウドネスなど)がどれほど正確に表されるかを記述する。概念的に、演奏を正確に再現するための空間精度の度合は、各タイプの動作が結果として生じる音にどのように影響を与えるかに関連している。例えば、人間の耳は、音量の変動よりもピッチの変動により敏感である。音量に影響を与える動作よりもピッチに影響を与える動作がより高い精度で取り込まれることがより望ましいはずである。したがって、本明細書に記載される演奏データの生成および伝送のためのさまざまなプロトコルは、演奏の最もクリティカルな動作を取り込むのに十分な分解能を提供する。
【0023】
時間精度と同様に、空間精度のための究極的基準は、主として最新のデジタル・オーデ
ィオ・ワークステーションによって設定された。DAW環境は、演奏データを一連の制御チャネルとして表す。DAW内のコントローラデータの数値表現は、通常、1.0に正規化された単精度浮動小数点である。このように正規化された単精度浮動小数点値は、24ビットの精度とほぼ同等である。
【0024】
歴史的に、MIDIプロトコルは、ピッチおよびモジュレーションホイールおよび/またはフットペダルなどの付加的な制御でしばしば拡張されるピアノ式キーボードから生じる演奏データの伝送を扱った。そのようなものとして、MIDIプロトコルは、メッセージがノートナンバ(どのキーが押されたか)およびノートベロシティ(キーがどれほど速く動いていたか)を伝達する、ノート・イベント・メッセージ(ノートオン、ノートオフ)を中心に構築されている。MIDIプロトコルは、8ビットマイクロプロセッサの時代に開発され、そのようなものとして、その基本データワード長として8ビットを使用する。MIDIは、1ビットをメッセージ開始フラグとして予約し、7ビットをパラメータデータのために残している。クリティカルなパラメータは、2つのデータワードを使用して送られ、14ビットの拡張精度をもたらす。
【0025】
キーベロシティについては、MIDIによって提供される7ビットの精度が初期のアプリケーションのために妥当であった。もっと最近になって、アコースティックピアノのダイナミックレンジを忠実に再現するために、ハンマベロシティのためのおよそ10ビットの精度を使用するべきであることが示唆された。(個別の楽器の相対的なバランスを保つことを目的に)単一の「ベロシティ」スケールを使用してオーケストラのダイナミックレンジを表すために、分解能の付加的な増加を使用することができる。
【0026】
相対的なピッチ調整(ピッチベンド)のために、MIDIによって提供される14ビットの拡張精度は十分であり得る。ピッチベンドは、比較的小さい周波数範囲(1オクターブ以下)にわたって適用され、結果としてピッチの連続的な変化が認知される。すなわち、結果として生じる周波数のステップは、認知されないように十分小さい(音楽セントの一部分)。演奏するべき音符のピッチを直接指定するために、または広範囲の周波数にわたってピッチを調整する制御のために、付加的な分解能を使用することができる。このような制御の実施例は、代替音律または微分音スケールを実現するためのノートピッチの直接割当てと同様にフィルタおよびイコライザ周波数調整を含む。
【0027】
<表現力>
演奏データに適用される場合、「表現力」(またはノートエクスプレッション)は、演奏のアーティキュレーションをどれほど正確に取り込むことができるかを示す。実施例として、弦楽器上の演奏は、具体的な音符のアーティキュレーションまたは具体的な弦上で演奏される音符のアーティキュレーションを含み得る。同様に、弦楽器は、弓で弾かれるか、ピックで弾かれるか、またはつま弾かれるかなどの特定のアタック法で演奏することができる。音楽的文脈における表現力は新しい概念ではないが、編集するために簡単で直感的な演奏データとして音楽表現を取り込むことは、新たな試みである。本明細書で使用される場合、演奏データの「取込み」は、演奏を1つまたは複数のコマンドおよび/またはメッセージとして符号化することを含み得る。
【0028】
たいていのDAWは、個別の音符のレベルで音楽表現を取り込んで操作することができない。通常これを試みることは、具体的なアーティキュレーションを必要とする音符をDAW内の別個のトラック上に分離することなどの、次善策の使用を必然的に伴う。少なくとも、このタイプの次善策は直感的ではなく、結果を編集することが困難である。
【0029】
前述したように、MIDIプロトコルは、ピアノ式キーボードから生じる演奏データの伝送を中心に発展した。キーベロシティの域を越えて、MIDIは、具体的な演奏してい
る音符を修正するための単一のパラメータ(ポリ・アフター・タッチ)を含む。(ピッチベンドなどの)他のすべてのMIDIパラメータは、チャネル上で演奏される音符のすべてを対象にする。そのようなものとして、MIDIプロトコルを他のタイプの楽器に適用することは困難な場合がある。DAWと同様に、最も一般的な次善策は、固有のアーティキュレーションを持つ音符をそれらの独自のMIDIチャネル上に分離することである。弦楽器の場合、各弦は、その独自のチャネル上に分離される。したがって、DAWで1つのギタートラック上に音符の単一シーケンスを見る代わりに、6つの別個のトラックが生成され、結果として、編集することが困難で扱いにくい場合がある演奏データとなる。加えて、「ポリエクスプレッション」音楽コントローラは、制御面上の個別の指の位置、動きおよび圧力を表現的な演奏データのソースとして追跡する入力装置である。MIDIを使用してこのようなコントローラからデータを伝送すると、それぞれの区別可能なタッチがその独自のチャネル上に分離される。再び、結果として生じるデータは、直感的でなく、一度取り込まれると編集することが困難である。
【0030】
<数値表現>
前述のように、MIDIは8ビットワード長を使用する。さまざまな実施例で、本明細書に記載のプロトコルは、標準ワード長として32ビットを使用することができる。例示的な32ビット実装で、上位8ビットは、コマンド(または保持されるデータのタイプの指示)を符号化することができ、下位24ビットは、コマンドパラメータまたは演奏データを符号化することができる。32ビットおよび64ビットのマイクロプロセッサの普及によって、32ビットワードは、最新の計算システムで容易に解析することができる。さまざまな実施例で、32ビットワード長は、同様に、典型的なDAW環境の内部コントローラ精度への良い適合を表し得る。24ビットより多くの精度が望ましい場合には、マルチワードメッセージを利用することができる。32ビットワードは、例示的な目的で本明細書に全体として記載されるが、本明細書に記載される演奏データの生成および伝送のためのさまざまな技法は、異なるデータワード長で使用してもよい。さまざまな実施例で、適当なワード長は、本明細書に記載のさまざまな技法を実装するために使用される特定の計算環境に基づいて選択することができる。
【0031】
<システム>
図1は、本開示のさまざまな実施態様に従って、演奏データを生成および伝送するために使用され得る例示的なシステム100を図示する。いくつかの実施例で、システム100は、入力装置102および計算機116を備え得る。入力装置102は、演奏データを生成するために、および/または、演奏データを計算機116のDAW122に送るために使用される、少なくとも1つのプロセッサおよびメモリを含む計算機として構成することができる。少なくともいくつかの実施例において、入力装置102は、演奏動作104を受け取り、演奏動作104に応答して入力イベント106などの入力イベントを生成することが可能な、コントローラまたは楽器として構成することができる。少なくともいくつかの実施例で、入力装置102は、(
図1に示されていない)任意選択的なデジタル・オーディオ・インタフェースを備えてもよく、および/またはデジタル・オーディオ・インタフェースと通信するように構成されてもよい。さまざまな実施例で、デジタル・オーディオ・インタフェースは、入力装置102と計算機116との間でクロック速度を一致させることができる。加えて、デジタル・オーディオ・インタフェースは、外部ソースからオーディオを受け取ることができる。いくつかの実施例で、デジタル・オーディオ・インタフェースは、受け取ったオーディオ(音響又は音声)を計算機116に渡すのに有効であり得る。
【0032】
入力装置102は、新しい演奏入力(例えば、演奏動作104)に対して入力装置102のセンサを監視するのに有効であり得る。例えば、ギターおよび他の弦楽器で、センサは、楽器によって作り出された機械的振動を感知するピックアップ装置を備えることがで
き、演奏動作は、ギターの弦をかき鳴らすことを含み得る。電気キーボードで、センサは、センサの配列を備えることができ、演奏動作は、演奏者がキーを押すことを含み得る。加えて、さまざまな実施例で、入力装置102は、入力装置102にローカルなクロック(例えば、クロック123)に基づいて、タイムスタンプ(例えば、タイムスタンプ108)を付与することができる。さまざまな実施例で、クロック123は、システム100中の1つまたは複数の他のクロックと同期させることができる。入力装置102はさらに、入力イベントを本開示に記載の(例えば、コマンドおよび符号化パラメータを含む)さまざまなメッセージにフォーマットするのに有効であり得る。入力装置102はさらに、メッセージを計算機(例えば、計算機116)に伝送するのに有効であり得る。さまざまな実施例で、計算機116は、DAWを含んでも含まなくてもよい。少なくともいくつかの実施例で、計算機116は、入力装置102から受け取ったさまざまな符号化音楽データを受け取り解釈するのに有効な少なくとも1つのプロセッサを備え得る。少なくともいくつかの実施例で、計算機116は、演奏データを再生することが可能な外部サウンドジェネレータであってもよく、またはこれと通信するように構成されてもよい。少なくともいくつかのさらなる実施例で、計算機116は、さまざまな実施形態に従って、演奏データを記憶、編集および/または転送するのに有効であり得る。
【0033】
演奏動作104は、入力イベント106を生成するために使用することができる。入力イベント106は、計算機116のDAW122に伝送する前にバッファ113に記憶することができる。DAW122は、入力装置102などの1つまたは複数の外部ソースから受け取ったさまざまな入力イベントを編集するためのインタフェースを提供することができる。(複数の入力イベントおよび外部オーディオソースを含み得る)演奏データは、編集および/または再生のためにDAW122によって提供されるグラフィカル・ユーザ・インタフェース上に表示することができる。演奏データは、計算機116のメモリ120に記憶することができる。加えて、演奏データは、演奏データの再生および/または記憶のために1つまたは複数の外部機器に計算機116によって出力することができる。
【0034】
計算機116は、入力装置102と関連付けられた1つまたは複数のデバイスドライバを備え得る。デバイスドライバは、入力装置102などの入力装置の取付けまたは結合を検出することができ、機器特有の構成タスクを行うことができる。デバイスドライバは、DAW(例えば、DAW122)に標準APIを提供することができる。少なくともいくつかの実施例で、デバイスドライバは、
図5〜
図11に関連して本明細書に説明されるクロック統制機能を行うことができる。入力装置がネットワーク接続を介して接続されるさまざまな他の実施例で、ホストアプリケーション(例えば、DAW122)は、本開示に従ってフォーマットされた入力イベントを受け取るために入力装置への直接(ネットワークソケット)接続を開くことができる。
【0035】
DAW122(または計算機116の別のホストアプリケーション)は、1つまたは複数の入力装置の選択を可能にすることができる。入力装置が有線接続を通して計算機116に接続されるとき、本明細書に記載のさまざまな技法に従ってフォーマットされた入力イベント(例えば、入力イベント106)は、標準化されたAPIを介してDAW122が受け取ることができる。さまざまな他の実施例で、ネットワーク接続型入力装置は、標準ネットワークプロトコルを使用してDAW122(または計算機116の別のホストアプリケーション)と接続することができる。さまざまな実施例で、DAW122(または計算機116の別のホストアプリケーション)は、メッセージ、演奏データおよび/または入力イベントを計算機116のメモリ120、および/または、1つもしくは複数のクラウドベースの記憶リポジトリに記憶するのに有効であり得る。
【0036】
<時間精度>
本明細書に記載される演奏データの生成および伝送のためのさまざまなシステムは、タ
イムスタンプと演奏データの構造化表現との組合せを使用して時間精度を達成することができる。タイムスタンプが音楽イベントの発生の時刻(例えば、音楽イベントが取り込まれた時刻または音楽イベントが演奏されるように意図されている時刻)を伝達し得るのに対して、構造化表現は、コマンドの単一タイムスタンプ付きブロック内で同時解釈のためにデータの関連部分をグループ化することを可能にし得る。
【0037】
例えば、
図1の入力イベント106は、イベントタイムスタンプ108、連鎖可能コマンド110a、メッセージセット112a(メッセージ1〜nを含む)、連鎖可能コマンド110bおよびメッセージセット112b(メッセージzを含む)を含む。
【0038】
イベントタイムスタンプ108は、タイムスタンプ108が生成されるブロック中のメッセージおよび/またはコマンドと時刻を関連付けることができる。例えば、入力イベント106は、各連鎖可能コマンドがいくつかのメッセージと関連付けられている状態で、2つの連鎖可能コマンド110a、110bを含む、コマンドのブロックを含み得る。
【0039】
本明細書で使用される場合、「連鎖可能コマンド」は、実行可能なコマンドおよび連鎖可能コマンドと関連付けられた1つまたは複数のパラメータを意味することができる(例えば、連鎖可能コマンドと関連付けられた(または「連鎖された」)メッセージの数の指示を含む連鎖データを含む)。
【0040】
メッセージは、メッセージの実行可能なコマンドによって符号化された音楽イベントのタイプを記述する音響属性タイプを符号化している第1のデータを含み得る。加えて、メッセージは、メッセージの音響属性タイプの値(例えば、パラメータ)を指定する1つまたは複数の音響属性値を符号化している第2のデータを含み得る。
【0041】
例えば、第1のメッセージは、音響属性タイプ「初期ピッチ」を含み得る。少なくともいくつかの実施例で、第1のメッセージの第1の数のビットは、音響属性タイプを符号化し得る。本明細書に記載のさまざまな技法に従って構成されたDAWまたは他の計算機は、音響属性タイプを第1のメッセージによって符号化された音楽イベントの初期ピッチを記述していると解釈するのに有効であり得る。
【0042】
さらに、第1のメッセージは、音響属性値「445Hz」を符号化している第2のデータを含み得る。この実施例で、第1のメッセージの第2の数のビットは、445Hzの値を符号化し得る。この実施例で、445Hzは、第1のメッセージの音響属性タイプ(例えば、「初期ピッチ」)の値を指定することができる。
【0043】
メッセージは、連鎖可能コマンドと関連付けられるかまたは「連鎖され」てもよく、そうでなくてもよい。タイムスタンプ108は、連鎖可能コマンド110a、110bが取り込まれた時刻、または連鎖可能コマンド110a、110bによって表される音楽イベントが演奏されるべき時刻を指定することができる。
【0044】
以下にさらに詳細に論じるように、タイムスタンプは、システム100の1つまたは複数のクロックを参照することにより生成することができる。例えば、クロック123は、入力装置102のローカルクロックとすることができ、タイムスタンプ108を生成するために使用することができる。
【0045】
さまざまな他の実施例で、入力装置102のローカルクロック123は、計算機116のクロック124と同期させることができる。入力装置(例えば、入力装置102)のローカルクロック(例えば、クロック123)は、タイムスタンプデータ(例えば、タイムスタンプ108)を生成するために使用することができる。場合によっては、入力装置の
ローカルクロックが入力装置102の外部の基準クロック(例えば、クロック124)に従うように統制され得るが、ローカルクロックはなお、タイムスタンプ108を生成するために使用されることになる。
【0046】
例示的な実装で、タイムスタンプは、入力イベントを生成する機器によって生成することができる。例えば、
図1で、入力装置102は、タイムスタンプ108を生成することができる。入力装置の場合、入力装置は、そのデータがシステム中の他の機器に移される前に演奏データにタイムスタンプを付与することができる。DAWの場合、DAWは、そのデータが外部(出力)機器に移される前に、演奏データにタイムスタンプを付与することができる。
【0047】
図2は、本開示のさまざまな実施態様に従って使用され得る演奏データの例示的な構造化表現を図示する。
図2は、「ノートオン」連鎖可能コマンド210を図示する。さまざまな実施例で、「ノートオン」連鎖可能コマンドは、特定の時刻において取り込まれた(および/または再生されるべき)音楽イベントを記述する。「ノートオン」連鎖可能コマンド210は、特定の時刻において取り込まれた(および/または演奏されるべき)特定の音符を指定することができる。さまざまな実施例で、連鎖可能コマンド(例えば、
図1の連鎖可能コマンド110a、110b)は、特定の連鎖可能コマンドを修正するメッセージの数を指定する連鎖長パラメータを含み得る。例えば、「ノートオン」連鎖可能コマンドは、「ノートオン」連鎖可能コマンド210を修正するメッセージの数を指定する連鎖長パラメータ212を含み得る。
【0048】
図2に図示される実施例で、連鎖長パラメータ212は、N個のメッセージ(例えば、メッセージ220、230、240、...、250)の連鎖長を指定する。
図2に図示される実施例で、ピッチ・ベンド・メッセージ220は、「ノートオン」連鎖可能コマンド210の音符の初期ピッチを指定することができる。同様に、アーティキュレーションメッセージ230は、「ノートオン」連鎖可能コマンド210の音符の特定のアーティキュレーション(例えば、音符がバイオリンで演奏される場合、つま弾かれるか弓で弾かれる)を指定することができる。
【0049】
前述のように、32ビット実装で、各メッセージの上位8ビットは、コマンドを符号化することができ、下位24ビットは、コマンドパラメータまたは演奏データを符号化することができる。実施例としてピッチ・ベンド・メッセージ220を使用すると、ピッチ・ベンド・メッセージ220の上位8ビットは、メッセージが「ノートオン」連鎖可能コマンド210によって符号化される音符の初期ピッチを指定するために使用されることを示すことができる。ピッチ・ベンド・メッセージ220の下位24ビットは、(例えば、音楽セントの一部分を使用して)特定のピッチを指定することができる。複数のメッセージが連鎖可能コマンド210と関連して図示されているが、(単一のメッセージを含む)任意の数のメッセージが本開示に従って使用され得る。
【0050】
図3は、本開示のさまざまな実施態様に従って、タイムスタンプ付き演奏データのブロックの例示的な構造化表現を図示する。さまざまな実施例で、マスタクロックをシステム100(
図1)で使用することができ、システム中の機器は、マスタクロックに同期させることができる。マスタクロックは、「ウォールクロック」または「メディアクロック」とすることができる。両方のクロックフォーマットで、時刻は、「上位」ワードが整数秒を伝達し「下位」ワードが秒の小数部を伝達するダブルワード拡張精度で表される。多数の小データブロックが規則的な時間間隔で伝送されるときオーバーヘッドを低減させるためにシングルワードオフセットベースのタイムスタンプが同様に含まれてもよい。
【0051】
「ウォールクロック」フォーマットは、従来の時刻を拡張精度で伝達する。IEEE1
588「Precision Time Protocol」は、このような拡張精度ウォールクロックの分配のための方法を指定する。例示的な実装で、IEEE1588クロックの最下位6ビットを切り捨ててウォール・クロック・フォーマットに対して64ナノ秒のタイムスタンプ粒度をもたらすことができる。
【0052】
「メディアクロック」フォーマットは、デジタル・オーディオ・システムのワードクロック(サンプルクロック)(例えば、
図1のデジタル・オーディオ・インタフェース114のワードクロック)に関連した時刻を伝達する。例示的なメディア・クロック・フォーマットで、タイムスタンプ小数部の8番目の最上位ビットは、シングルレート(48kHz)プロフェッショナル・オーディオ・システムに対する1つのサンプル期間と等しくすることができる、タイムスタンプ小数部の7番目の最上位ビットは、ダブルレート(96kHz)ハイ・レゾリューション・オーディオ・システムの1つのサンプル期間と等しい、などである。上述の例示的な実装は、メディア・クロック・フォーマットに対しておよそ81ナノ秒のタイムスタンプ粒度をもたらす。
【0053】
図3は、メッセージのタイムスタンプ付きブロック300を図示する。タイムスタンプ310は整数秒を表すことができ、タイムスタンプ312は秒の小数部を表すことができる。まとまったタイムスタンプ310および312は、メッセージのタイムスタンプ付きブロック300内に符号化された演奏データが取り込まれた時刻または再生されるべき時刻を上述の許容誤差以内まで(例えば、クロック実装のタイプに応じて、64または81ナノ秒以内まで)表すことができる。
【0054】
メッセージのタイムスタンプ付きブロック300は、2つの「ノートオン」連鎖可能コマンド314および322を含む。したがって、メッセージのタイムスタンプ付きブロック300は、同時に演奏される2つの音符を符号化する。ノートオン連鎖可能コマンド(ノート・オン・イベント動作)314は、3つのメッセージ−316、318および320−の連鎖長(CL)を含む。
図2に関連して上述したように、3つのメッセージ316、318および320のそれぞれは、ノートオン連鎖可能コマンド314によって符号化された音符を修正することができる。
【0055】
同様に、ノートオン連鎖可能コマンド(ノート・オン・イベント動作)322は、2つのメッセージ−324および326−のCLを含む。
図2に関連して上述したように、メッセージ324および326のそれぞれは、ノートオン連鎖可能コマンド322によって符号化された音符を修正することができる。メッセージ(エンド・オブ・ブロック)328は、メッセージのタイムスタンプ付きブロック300への明示的終了点を示す。
【0056】
<音楽表現データ>
基本的なレベルで、演奏データをカプセル化するプロトコルは、作り出すべき任意の新しい音の開始も、音の終了までの、および音の終了を含む、その音のあらゆるその後の修正も伝達する。新しい音が鳴り始めるとき、またはすでに鳴っている音が修正されるとき、プロトコルはその音に固有の演奏データを伝達する。最終的に、完全な楽曲をカプセル化するために、本明細書に記載のさまざまな実施形態に従って、関連した音(または楽器)をグループ化(またはチャネル化)する方法が使用され得る。
【0057】
本明細書に記載の演奏データの生成および伝送のためのさまざまなシステムおよび方法で、関連した音(完全な楽曲の単一の楽器または単一のメロディーライン)は、チャネルに組織化することができる。非キーボード指向の楽器により良く対応するために、本明細書に記載される演奏データの生成および伝送のためのさまざまなシステムおよび方法は、サブチャネルを含む。すなわち、各チャネルは、いくつかのサブチャネルにさらに分割することができる。弦楽器を例にとると、弦楽器の各弦は、その独自のサブチャネルに割り
当てることができる。加えて、この実施例で、弦楽器の演奏は、全体的な演奏が単一のチャネルによって定義されるように、第1のチャネルに対して生成することができ、他方、特定の弦に起因する演奏の部分は、弦楽器のチャネルの特定のサブチャネルに対して生成される。同じ音符(同じピッチ)を2つ以上の弦上で、しかしその選択に基づいて少し異なる調性で演奏することができるので、各弦に対するサブチャネルの生成は特に有用であり得る。同様に、最新の「ポリエクスプレッション」コントローラは、それぞれの区別可能なタッチをその独自のサブチャネルに割り当てることができる。
【0058】
前述のように、表現力を最大化する努力で、本明細書に記載のさまざまなシステムおよび方法は、例えば、
図2および
図3に関連して示され説明されるように、コマンドおよびメッセージのコマンド連鎖の概念を使用することができる。さまざまな実施例で、連鎖可能コマンド(例えば、
図1の連鎖可能コマンド110a、110b)は、基本コマンド(ノートオン、ノートオフ、ノート修正、チャネル修正)のセットを定義することができ、パラメータの任意のセットをこれらの基本コマンドのそれぞれと関連付ける(連鎖させる)ことを可能にし得る。MIDIが音の開始および終了とともにパラメータ(ノートナンバおよびベロシティ)の固定セットを伝送するのに対して、本明細書に記載のさまざまな技法は、伝送されるパラメータのセットを楽器または演奏特有にすることを可能にする。したがって、本明細書に記載のさまざまな技法は、音の任意の態様を音が鳴り始めるときに指定することを可能にし得る。加えて、すでに鳴っている音の任意の態様は、本明細書に記載のデータの構造化表現を使用して、その音の終了まで、およびその音の終了を含めて、任意の時点で修正することができる。
【0059】
音(ピッチまたはラウドネスなど)の特性を具体化するために使用されるより一般的なパラメータに加えて、本明細書に記載のさまざまなシステムおよび方法は、演奏データの表現力を向上させる(ときどき本明細書で「アーティキュレーションヒント」と呼ばれる)アーティキュレーション命令の概念を加える。アーティキュレーションヒントは、音への一般的な修正(例えば、シンバルなどの打楽器のミューティング)と同様に、新しい音が開始するときアタックのタイプ(例えば、弦楽器に対してつま弾かれるか弓で弾かれる)を符号化するのに有効な命令を含み得る。
【0060】
例えば、
図3を参照して、イベント動作314は、メッセージ316、318および320を含む「ノートオン」連鎖可能コマンドとすることができる。メッセージ316は、バイオリン上の音符の初期ピッチを指定することができる。メッセージ318は、演奏の表現力をより忠実に再現するために音楽家の弓が上向きまたは下向きに動いていることを示すアーティキュレーションヒントとすることができる。
【0061】
前述のように、MIDIでは、個別の音符レベル表現が望ましい場合、固有のアーティキュレーションを必要とする音符は、それらの独自のチャネル上に分離される。弦楽器の場合、各弦は、その独自のチャネル上に分離される。したがって、DAWで1つのギタートラック上にノートの単一シーケンスを見る代わりに、6つの別個のトラックが生成され、結果として、編集することが困難で扱いにくい場合がある演奏データとなる。対照的に、本明細書に記載のさまざまなシステムおよび方法では、特定の楽器またはコントローラによる演奏のための単一のチャネルを維持しつつ、音符レベル表現を達成することができる。
【0062】
最終的に、上述の音符レベル表現に加えて、チャネル修正コマンドにより、チャネルまたはサブチャネル上で演奏されるすべての音符を扱うことが可能になる。チャネルレベル制御は、柔軟性および粒度を欠くが、複数の音符が同じように修正されることになっている多くのアプリケーションに依然として有用である。
【0063】
<拡張性>
さまざまな実施例で、本明細書に記載のシステムおよび方法をどのように新しいアプリケーションに適応可能にすることができるかについて、いくつかの考察を提供することができる。
図4は、本開示のさまざまな実施態様による例示的なコマンドテーブル400のグループ化を図示する。
【0064】
第1に、コマンドテーブルは、論理セクションに分けることができ、割り当てられていないコードは、新しいコマンドが加えられる可能性が最も高いセクション内で予約される。例えば、連鎖可能コマンドセクションは現在、ノートオン、ノートオフ、ノート修正およびチャネル修正を含むが、もし連鎖可能コマンドの新しいタイプが使用されるなら、割り当てられていないコードの範囲が予約され得る。さらに、コマンドテーブル中のいくつかのコードは、予想される物理インタフェースとの適合性のために予約することができる。例えば、ある特定のコードは、ストリーム指向インタフェースで容易に認識されるプリアンブルとして予約される。
【0065】
さまざまな実施例で、本明細書に記載のさまざまなシステムおよび方法は、拡張(ページ化)パラメータセットの概念を含み得る。いくつかの実施例で、このような拡張パラメータセットは、(元々定義されているパラメータに対して)「登録複合制御(Registered Complex Controls)」および(自由に割当可能なパラメータに対して)「非登録複合制御(Non−Registered Complex Controls)」と呼ばれる場合がある。いくつかの実施例で、複合制御の各クラスは、最大65,536ページを扱うことができ、各ページには、全部で1600万個の一意的にアドレス可能なパラメータに対して、最大127個のパラメータを入れることができる。
【0066】
<多岐にわたる特徴>
さまざまな実施例で、本明細書に記載のシステムおよび方法は、パラメータリードバック要求などの付加的な有用な特徴を含み得る。名称が示唆するように、このコマンドは、入力装置またはコントローラが、示されたパラメータの現在の状態を返すことを要求する。現在の状態について質問することに加えて、入力装置/コントローラ能力の自動発見のためにリードバック要求を使用することが同様に可能である。リードバック要求を通してDAWに返すことができる情報の実施例は、各制御に対して実装される最小および最大範囲、各制御に対して実装されるステップサイズまたは分解能、各制御の機能を説明するテキストラベルなどを含み得る。リードバック要求機能は、特に拡張パラメータの大きなセットを実装する機器に対して、より容易な「プラグ・アンド・プレイ」エンドユーザ体験を可能にする。
【0067】
<代替用途>
演奏データに関連して上に論じたが、上述の機能性は、音楽にわずかに関連したデータを取り込んで伝送するために同様に使用することができる。実施例は、従来のレコーディングスタジオ環境内の装置自動化、DAWの触覚制御のために使用される制御面、ライブ演奏用途などを含む。ライブ演奏自体は、装置自動化、舞台照明、ビデオおよび他の媒体を含んでもよく、そこで各要素を台本によるタイムラインにまたはライブ演奏に同期させてもよい(または同期させなくてもよい)。
【0068】
<実装>
上述のプロトコル、システムおよび方法のさまざまな実装は、計算機に結合された入力装置を含み得る。入力装置は、演奏データを取り込むために使用される任意の機器とすることができる。さまざまな実施例で、入力装置は、楽器またはコントローラ機器とすることができる。少なくともいくつかの実施例で、入力装置として使用される楽器は、演奏デ
ータとして上述のさまざまなデータを生成するのに有効な1つまたは複数のプロセッサを備え得る。例えば、本開示のさまざまな実施態様による楽器は、タイムスタンプデータおよびタイムスタンプデータと関連して上に論じたさまざまなコマンドを生成するのに有効なマイクロプロセッサを備え得る。
【0069】
入力装置は、DAWを実行する計算機に結合することができる。さまざまな実施例で、計算機は、取り込んだデータを記憶、編集、および/または伝送するために使用することができる。少なくともいくつかの実施例で、デジタル・オーディオ・インタフェースを使用することができ、デジタル・オーディオ・インタフェースは、入力装置と計算機との間の通信リンクにおいて挿入することができる。さまざまな他の実施例で、入力装置は、計算機と直接インタフェースをとることができる。
【0070】
いくつかの実施例で、入力装置は、本明細書に記載のように、演奏の動作を取り込むためのセンサを搭載した、従来の楽器を含み得る。いくつかのさらなる実施例で、入力装置は、演奏の取込みのために従来の楽器に倣って設計された専用コントローラを含み得るが、その専用コントローラは、それ自体の音を作り出さない。いくつかのさらなる実施例で、入力装置は、演奏の取込みのために(従来の楽器に倣って設計されない)固有のデザインの専用コントローラを含んでもよく、その専用コントローラは、それ自体の音を作り出しても作り出さなくてもよい。
【0071】
さまざまな実施例で、計算機は、本明細書に記載のように、1つまたは複数のデスクトップまたはラップトップコンピュータを含み得る。いくつかのさらなる実施例で、計算機は、本明細書に記載のように、タブレットまたはスマートフォンなどの1つまたは複数の携帯型計算機を含み得る。なおさらなる実施例で、計算機は、DAW(例えば、音楽ワークステーション)を実行するための専用の計算機を含み得る。
【0072】
いくつかの実施例で、本明細書に記載のように、デジタル・オーディオ・インタフェースは、オーディオをデジタル表現に、および/またはデジタル表現から変換するのに有効であり得る。さまざまな実施例で、デジタル・オーディオ・インタフェースは、本明細書に記載のように、計算機に組み込まれたデジタル・オーディオ・インタフェースを含み得る。さらに他の実施例で、デジタル・オーディオ・インタフェースは、本明細書に記載のように、入力装置に組み込まれたデジタル・オーディオ・インタフェースを含み得る。なおさらなる実施例で、デジタル・オーディオ・インタフェースは、計算機に取り付けられて入力装置と通信するように構成されたデジタル・オーディオ・インタフェース周辺機器を含み得る。例えば、入力装置のクロックは、デジタル・オーディオ・インタフェースのクロックに従うように統制され得る。
【0073】
さまざまな実施例で、
図5〜
図10に図示される「イベントタイムスタンプ」は、
図1〜
図4を参照して本明細書に説明されたコマンドの実施例とすることができる。加えて、さまざまな実施例で、
図5〜
図10に図示される用語「パラメータ」の事例は、
図1〜
図4に関連して上述したような(そのいずれかがパラメータ値を含み得る)コマンド、および/または、メッセージの実施例とすることができる。さらに、
図5〜
図11に図示されるさまざまな実施例で、「CD」は、1つまたは複数のクロックを基準クロックに同期させるのに有効なクロック統制信号を意味することができる。
【0074】
図5は、本開示の一実施形態に従って、タイムスタンプが入力装置にローカルなクロックを参照する例示的な実装を図示する。いくつかの実施例で、入力装置は、計算機に結合することができ、ここでタイムスタンプは、その入力装置にローカルなクロックを参照する。
【0075】
図6は、本開示の一実施形態に従って、タイムスタンプが入力装置にローカルなデジタル・オーディオ・クロックを参照する例示的な実装を図示する。
図6に図示される実施例で、入力装置は、デジタル・オーディオ・インタフェース機能を含む。少なくともいくつかの実施例で、入力装置によって生成されるタイムスタンプは、入力装置にローカルなデジタル・オーディオ・インタフェースのデジタル・オーディオ・クロックを参照することができる。
【0076】
図7は、本開示のさまざまな実施態様に従って、計算機にローカルなクロックがクロック基準として使用される例示的な実装を図示する。
図7に図示される各入力装置によって生成されるタイムスタンプは、入力装置にローカルなクロックを参照することができる。
図7に図示されるように、各入力装置のクロックは、CD信号を使用して基準クロックに従うように統制され得る。
【0077】
図8は、本開示のさまざまな実施態様に従って、計算機がデジタル・オーディオ・インタフェース機能を備え、デジタル・オーディオ・インタフェースのデジタル・オーディオ・クロックが基準クロックとして使用される例示的な実装を図示する。
【0078】
図9は、本開示のさまざまな実施態様に従って、専用のデジタル・オーディオ・インタフェース周辺機器が計算機に結合される例示的な実装を図示する。
図9に図示される実施例で、計算機にローカルなクロックが基準として使用され、取り付けられた入力装置のローカルクロックおよびデジタル・オーディオ・インタフェース周辺機器のローカルクロックは、CD信号を使用して計算機のローカルクロックに従うように統制される。
【0079】
図10は、本開示の一実施形態に従って、専用のオーディオインタフェース周辺機器が計算機に結合され、周辺機器のデジタル・オーディオ・クロックが基準クロックとして使用される例示的な実装を図示する。計算機にローカルなクロックおよび入力装置にローカルなクロックは、CD信号を使用して周辺機器のデジタル・オーディオ・クロックに従うように統制され得る。
【0080】
図11は、本開示のさまざまな実施態様に従って、計算機への直接接続を有する機器のサブセットおよび計算機へのネットワークベースの接続を有する機器のサブセットを図示する。以下にさらに詳細に説明するように、直接接続される機器は、有線または無線接続を使用して接続され得る。同様に、ネットワーク接続される機器は、有線または無線接続で接続され得る。
図11に図示される実施例で、計算機にローカルなクロックは、選択されたネットワーク基準クロックに従うように統制され得る。計算機に直接接続される機器にローカルなクロックは、計算機のローカルクロックに従うように統制され得る。したがって、直接取り付けられた機器のローカルクロックは、選択されたネットワーク基準クロックに従うように間接的に統制される。
【0081】
図11で、計算機への直接接続を有する機器は、有線接続(例えば、USB、Thunderbolt、など)で、または無線接続(例えば、Bluetooth 登録商標)で接続され得る。同様に、ネットワーク(LAN)接続される機器は、有線接続(例えば、Ethernet)で、または無線接続(例えば、WiFi)で接続され得る。ネットワークに接続される機器については、クロック統制プロセスは、IEEE1588/PTP(高精度時間プロトコル)などの標準化されたプロトコルを使用して生じる。計算機に直接接続される機器については、クロック統制プロセスは、そのホスト計算機のデバイス・ドライバ・レベルにおいて生じ得る。
【0082】
図12を参照すると、ブロック図は、非一時的機械可読記憶媒体(例えば、ハードドライブ記憶システム)から命令1224を読み、全体的または部分的に、本明細書に論じた
方法論のうちのいずれか1つまたは複数を行うことが可能である、いくつかの例示的な実施形態による、計算機1200の構成要素を例示する。具体的には、
図12は、本明細書に論じた方法論のうちのいずれか1つまたは複数を計算機1200に行わせる命令1224(例えば、ソフトウェア、プログラム、アプリケーション、アプレット、アプリ、または他の実行可能なコード)が全体的または部分的に実行され得るコンピュータシステムの例示的な形で計算機1200を示す。
【0083】
代替実施形態で、計算機1200は、スタンドアローンの機器として動作し、または他の計算機に接続(例えば、ネットワークで結合)されてもよい。ネットワーク化配置で、計算機1200は、サーバ−クライアントネットワーク環境におけるサーバ計算機もしくはクライアント計算機の性能において、または分散型(例えば、ピアツーピア)ネットワーク環境におけるピア計算機として動作し得る。計算機1200は、ハードウェア、ソフトウェア、またはそれらの組合せを含むことができ、例として、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットコンピュータ、ラップトップコンピュータ、ネットブック、携帯電話、スマートフォン、セットトップボックス(STB)、パーソナル・デジタル・アシスタント(PDA)、ウェブアプライアンス、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジ、または、連続的にまたは別の方法で、計算機がとるべき動作を指定する命令1224を実行することが可能な任意の計算機とすることができる。さらに、単一の計算機1200だけが例示されているが、用語「計算機」は、同様に、本明細書に論じた方法論のうちのいずれか1つまたは複数の全部または一部を行うための命令1224を個別にまたは連帯的に実行する計算機の任意の集合を含むととるものとする。
【0084】
計算機1200は、プロセッサ1202(例えば、中央処理装置(central processing unit:CPU)、グラフィック処理装置(graphics processing unit:GPU)、デジタル・シグナル・プロセッサ(digital signal processor:DSP)、特定用途向け集積回路(application specific integrated circuit:ASIC)、無線周波数集積回路(radio−frequency integrated
circuit:RFIC)、またはそれらの任意の適当な組合せ)、メインメモリ1204、およびスタティックメモリ1206を含み、それらはバス1208を介して互いに通信するように構成される。プロセッサ1202は、全体的または部分的に、プロセッサ1202が本明細書に記載の方法論のうちのいずれか1つまたは複数を行うように構成可能であるように、命令1224の一部または全部によって、一時的にまたは恒久的に、構成可能な超小型回路が入っていてもよい。例えば、プロセッサ1202の1つまたは複数の超小型回路のセットは、本明細書に記載の1つまたは複数のモジュール(例えば、ソフトウェアモジュール)を実行するように構成可能とすることができる。
【0085】
計算機1200は、ディスプレイコンポーネント1210をさらに含み得る。ディスプレイコンポーネント1210は、例えば、陰極線管(cathode ray tube:CRT)、液晶ディスプレイ(liquid crystal display:LCD)スクリーン、ガスプラズマベースのフラット・パネル・ディスプレイ、LCDプロジェクタ、または他のタイプのディスプレイ装置を備え得る。
【0086】
計算機1200は、ユーザからの入力を受け取るように動作可能な1つまたは複数の入力装置1212を含み得る。入力装置1212は、例えば、押しボタン、タッチパッド、タッチスクリーン、ホイール、ジョイスティック、キーボード、マウス、トラックボール、キーパッド、加速度計、ライトガン、ゲームコントローラ、または、それによってユーザが計算機1200に入力を提供することができるその他のこのような機器もしくは要素を含むことができる。これらの入力装置1212は、計算機1200に物理的に組み込ま
れてよく、または有線もしくは無線インタフェースを介して計算機1200に動作可能に結合されてもよい。タッチスクリーンディスプレイを有する計算機の場合、入力装置1212は、ユーザがタッチ入力を使用して(例えば、指またはスタイラスで)ディスプレイコンポーネント1210によって表示される画像と対話することを可能にするために、ディスプレイコンポーネント1210と連携して動作するタッチセンサを含むことができる。
【0087】
計算機1200は、特定の無線プロトコルの通信範囲内で1つまたは複数の別個の機器と通信するように動作可能な1つまたは複数の無線コンポーネントを備えた、少なくとも1つの通信インタフェース1220を同様に含み得る。無線プロトコルは、Bluetooth、セルラー方式、IEEE802.11、またはIrDA準拠のプロトコルなどの赤外線通信プロトコルなどの、機器がワイヤレスで通信することを可能にするために使用される任意の適切なプロトコルとすることができる。通信インタフェース1220が、他の機器と結合して通信するための1つまたは複数の有線通信インタフェースを同様に、または代わりに備え得ることを理解するべきである。
【0088】
計算機1200は、例えば、従来のプラグイン手法を通して、または容量性充電などの他の手法を通して再充電されるように動作可能な充電式バッテリなどの、電源1228を同様に含み得る。代わりに、電源1228は、送電網からのAC電力を計算機1200の内部コンポーネント用の調整されたDC電力に変換する電源ユニットを含み得る。
【0089】
計算機1200は、記憶素子1216を同様に含み得る。記憶素子1216は、本明細書に記載の方法論または機能のうちのいずれか1つまたは複数を具現化する命令1224が記憶されている機械可読媒体を含む。命令1224は、計算機1200によるそれらの実行の前または間に、メインメモリ1204内に、プロセッサ1202内に(例えば、プロセッサのキャッシュメモリ内に)、または両方に、完全にまたは少なくとも部分的に存在し得る。命令1224は、スタティックメモリ1206中に同様に存在し得る。
【0090】
したがって、メインメモリ1204およびプロセッサ1202は、同様に、機械可読媒体(例えば、有形かつ非一時的な機械可読媒体)とみなすことができる。命令1224は、通信インタフェース1220を介してネットワーク1244上で送信または受信することができる。例えば、通信インタフェース1220は、いずれか1つまたは複数の転送プロトコル(例えば、ホームネットワーク接続構成特定プロトコル(Home−network Topology Identifying Protocol:HTIP))を使用して命令1224を通信することができる。
【0091】
計算機1200は、タブレット計算機、スマートフォン、メディアプレイヤ、ポータブルゲーム機器、ポータブル・デジタル・アシスタント、ラップトップコンピュータ、またはデスクトップコンピュータなどの、いくつかの電子機器のうちのいずれかとして実装することができる。いくつかの例示的な実施形態で、計算機1200は、(図示されない)1つまたは複数の付加的な入力コンポーネント(例えば、センサまたは計器)を有し得る。このような入力コンポーネントの実施例は、画像入力コンポーネント(例えば、1つまたは複数のカメラ)、オーディオ入力コンポーネント(例えば、マイクロフォン)、方向入力コンポーネント(例えば、コンパス)、位置入力コンポーネント(例えば、GPS受信機)、方向づけコンポーネント(例えば、ジャイロスコープ)、動き検出コンポーネント(例えば、1つまたは複数の加速度計)、高度検出コンポーネント(例えば、高度計)、およびガス検出コンポーネント(例えば、ガスセンサ)を含む。これらの入力コンポーネントのうちのいずれか1つまたは複数によって得られた入力は、本明細書に記載のモジュールのいずれかによる使用のためにアクセス可能で利用可能とすることができる。
【0092】
本明細書で使用される場合、用語「メモリ」は、一時的にまたは恒久的にデータを記憶することが可能な非一時的機械可読媒体を意味し、ランダムアクセスメモリ(random−access memory:RAM)、リードオンリメモリ(read−only
memory:ROM)、バッファメモリ、フラッシュメモリ、およびキャッシュメモリを含むがこれらに限定されないとみなされ得る。機械可読媒体は、伝播する信号を具現化しないという点において非一時的である。機械可読媒体は、単一媒体として例示的な実施形態で説明されるが、用語「機械可読媒体」は、命令1224を記憶することが可能な単一媒体または複数媒体(例えば、集中型もしくは分散型データベース、または関連キャッシュおよびサーバ)を含むとみなすべきである。用語「機械可読媒体」は、同様に、命令1224が、計算機1200の1つまたは複数のプロセッサ(例えば、プロセッサ1202)によって実行されるとき、全体的または部分的に、本明細書に記載の方法論のうちのいずれか1つまたは複数を計算機1200に行わせるように、計算機1200による実行のための命令1224を記憶することが可能な、任意の媒体、または複数の媒体の組合せを含むとみなすものとする。したがって、「機械可読媒体」は、複数の記憶装置または機器を含むクラウドベースの記憶システムまたはストレージネットワークと同様に、計算機116または1200などの単一の記憶装置または機器を意味する。用語「機械可読媒体」は、したがって、ソリッドステートメモリ、光学媒体、磁気媒体、またはそれらの任意の適当な組合せの形で1つまたは複数の有形の(例えば、非一時的な)データリポジトリを含むがこれに限定されない。
【0093】
図13は、本開示のさまざまな実施態様に従って使用され得る例示的なプロセスを例示するフローチャートを図示する。少なくともいくつかの実施例で、プロセスフロー1300の動作は、計算機の処理装置によって実行可能なコンピュータ可読機械コードを含む一連の命令を表すことができる。さまざまな実施例で、コンピュータ可読機械コードは、計算機のネイティブ命令セットおよび/または計算機のオペレーティングシステムから選択された命令で構成され得る。さまざまな他の実施例で、プロセスフロー1300の1つまたは複数の動作は、特定用途向け集積回路(application specific
integrated circuit:ASIC)またはプログラマブル回路などのハードウェアによって行うことができる。いくつかのさらなる実施例で、プロセスフロー1300の動作のうちの1つまたは複数は、ハードウェアおよびコンピュータ可読命令の何らかの組合せによって実行され得る。加えて、少なくともいくつかの実施例で、プロセスフロー1300の動作は、
図13に関連して示され説明されるものの他に異なる順序で行われてもよい。
【0094】
いくつかの実施例で、プロセスフロー1300は、動作1302、「第1の音楽イベントを符号化する第1のコマンドを生成する」で始めることができる。動作1302で、
図1に関連して上述した入力装置102などの、計算機は、第1の音楽イベントを符号化する第1のコマンドを生成することができる。さまざまな実施例で、コマンドは、「ノートオン」コマンドおよび本明細書に記載のさまざまな他の連鎖可能コマンドなどの、連鎖可能コマンドとすることができる。
【0095】
プロセスフロー1300は、動作1302から動作1304、「第1のコマンドに対応する第1のメッセージを生成し、第1のメッセージは、第1の音楽イベントの第1の音響属性タイプおよび第1の音響属性値を符号化する」に続くことができる。動作1304で、
図1に関連して上述した入力装置102などの、計算機は、第1のコマンドに対応する第1のメッセージを生成することができる。
【0096】
第1のメッセージは、例えば、
図4に図示されるコマンドテーブル400などの、コマンドテーブルから選択されたコマンドとすることができる。さまざまな実施例で、第1のメッセージは、第1の音楽イベントのさまざまな属性を符号化することができる。例えば
、第1のメッセージは、第1の音楽イベントの第1の音響属性タイプおよび第1の音楽イベントの第1の音響属性値を符号化することができる。別の実施例で、第1の音響属性タイプは、「初期ピッチ」、「ラウドネス」、「ピッチベンド」などのコマンドのタイプを指定することができる。この実施例で、第1の音響属性値は、第1の音響属性タイプに対する値を指定することができる。例えば、第1の音響属性タイプが「ラウドネス」である場合、第1の音響属性値は、第1の音楽イベントの再生のための音符のラウドネスを符号化することができる。
【0097】
プロセスフロー1300は、動作1304から動作1306、「第1のコマンドに対応する第2のメッセージを生成し、第2のメッセージは、第1の音楽イベントの第2の音響属性タイプおよび第2の音響属性値を符号化する」に続くことができる。動作1306で、
図1に関連して上述した入力装置102などの、計算機は、第1のコマンドに対応する第2のメッセージを生成することができる。
【0098】
第2のメッセージは、例えば、
図4に図示されるコマンドテーブル400などの、コマンドテーブルから選択されたコマンドとすることができる。さまざまな実施例で、第2のメッセージは、第1の音楽イベントのさまざまな属性を符号化することができる。例えば、第2のメッセージは、第1の音楽イベントの第2の音響属性タイプおよび第1の音楽イベントの第2の音響属性値を符号化することができる。別の実施例で、第2の音響属性タイプは、「初期ピッチ」、「ノートデュレーション」、「ピッチベンド」などのコマンドのタイプを指定することができる。この実施例で、第2の音響属性値は、第2の音響属性タイプに対する値を指定することができる。例えば、第1の音響属性タイプが「初期ピッチ」である場合、第1の音響属性値は、第1の音楽イベントの音符のピッチ(例えば、周波数値)を符号化することができる。
【0099】
プロセスフロー1300は、動作1306から動作1308、「第1の音楽イベントの発生の時刻を意味するタイムスタンプデータを生成する」に続くことができる。動作1308で、計算機(例えば、プロセッサを備えた楽器および/またはコントローラ)は、第1の音楽イベントの発生の時刻を意味するタイムスタンプデータを生成することができる。
【0100】
上述のように、タイムスタンプデータは、(第1のコマンド、第1のメッセージおよび第2のメッセージによって符号化される)第1の音楽イベントが取り込まれる時刻または第1の音楽イベントの演奏で再生されるべき時刻を記述することができる。少なくともいくつかの実施例で、タイムスタンプデータは、演奏データの取込みならびに本開示に記載のさまざまなコマンドおよびメッセージの生成と同時に(またはほとんど同時に)生成することができる。
【0101】
プロセスフロー1300は、動作1308から動作1310、「タイムスタンプデータ、第1のコマンド、第1のメッセージ、および第2のメッセージをデジタル・オーディオ・ワークステーションに送る」に続けることができる。動作1310で、第1のコマンド(例えば、連鎖可能な「ノートオン」コマンド)、第1のメッセージ(例えば、「ノートオン」コマンドの音符の持続時間を符号化するメッセージ)、第2のメッセージ(例えば、「ノートオン」コマンドの音符の初期ピッチを符号化するメッセージ)およびタイムスタンプデータをDAWに送ることができる。タイムスタンプデータは、第1の音楽イベントを再現するために第1のコマンド、第1のメッセージおよび第2のメッセージが再生されるべき時刻を指定することができる。
【0102】
本発明は特定の実施形態および例示的な図に関して説明されたが、当業者は、本発明が説明された実施形態または図に限定されないことを認識するであろう。例えば、上述のさ
まざまな実施形態で、演奏データの符号化が説明されている。しかしながら、他の実施形態で、本明細書に記載のさまざまな技法に従って他のタイプのデータが符号化され得る。例えば、本明細書に記載のさまざまな技法に従って、照明、振付け、および正確なタイミングを必要とする他のデータが符号化され得る。加えて、ピッチおよびノートデュレーションなどの特定の音楽属性が本明細書に記載されるが、当業者は、本明細書に記載のさまざまな技法に従って、演奏のさまざまな他のパラメータが符号化され得ることを認識するであろう。
【0103】
さまざまな実施例で、他にも潜在的利益があるが、本明細書に記載のさまざまな技法は、演奏データを取り込み、再生する技術分野を改善する。例えば、本明細書に記載のタイムスタンプ付与技法と同様、本明細書に記載の演奏データの特定の構造化表現は、現在の技法と比較して高度の時間精度および空間精度で演奏データを取り込むことを可能にする。加えて、本明細書に記載の方法およびシステムは、取り込み、再生する演奏データの表現力の向上を可能にし得る。
【0104】
本明細書に示された詳細は、例として、本発明の好ましい実施形態を例示的に論じる目的のためだけのものであり、本発明のさまざまな実施形態の原理および概念的実施態様の最も有用で理解しやすい説明であると思われるものを提供するために提示される。この点に関して、本発明の基本的な理解に必要であるよりも詳細に本発明の詳細を示すための試みは行われず、図面および/または実施例を用いて行われた説明が、本発明のいくつかの形態がどのように実際に具現化され得るかを当業者に明らかにする。
【0105】
本明細書で使用される場合、別途示されない限り、用語「1つの(a)」および「1つの(an)」は、「1つの」、「少なくとも1つの」または「1つまたは複数の」を意味するとみなされる。文脈により別途必要とされない限り、本明細書で使用される単数形の用語は複数形を含むものとし、複数形の用語は単数形を含むものとする。
【0106】
文脈が別途明確に必要としない限り、明細書および特許請求の範囲の全体を通して、単語「備える(comprise)」、「備えている(comprising)」などは、排他的または網羅的な意味と反対に包括的な意味で、すなわち、「含むがこれに限定されない」という意味で解釈されるべきである。単数または複数の数を使用している単語は、それぞれ、複数および単数の数を同様に含む。加えて、単語「ここに」、「上に」、および「下に」ならびに類似の意味の単語は、本出願書で使用されるとき、本出願書の特定の部分でなく、全体としての本出願書を意味するものとする。
【0107】
本開示の実施形態の説明は、網羅的であるように、または本開示を開示された正確な形態に限定するように意図されるものではない。本開示に対する具体的な実施形態および実施例が例示的な目的で本明細書に記載されるが、当業者が認識するように、さまざまな等価な修正が本開示の範囲内で可能である。このような修正は、開示された実施形態に示された寸法および/または材料の変更を含み得るが、これに限定されない。
【0108】
あらゆる実施形態の具体的な要素は、他の実施形態中の要素と組み合わせ、または置き換えることができる。そのうえ、本開示のある特定の実施形態と関連付けられた利点をこれらの実施形態との関連で説明してきたが、他の実施形態がこのような利点を同様に発揮することができ、すべての実施形態が本開示の範囲内に含まれるためにこのような利点を必ず発揮する必要があるわけではない。
【0109】
したがって、本発明が添付の特許請求の範囲の趣旨および範囲の中で修正および変更とともに実践され得ることを理解するべきである。説明は、網羅的であるように、または本発明を開示された正確な形態に限定するように意図されるものではない。本発明を修正お
よび変更とともに実践することができること、ならびに本発明が特許請求の範囲およびその等価物によってのみ限定されることを理解するべきである。