(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-13
(54)【発明の名称】拡張可能な類似度ベース適合音楽ミックス生成
(51)【国際特許分類】
G10G 1/00 20060101AFI20241106BHJP
【FI】
G10G1/00
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024530463
(86)(22)【出願日】2023-01-26
(85)【翻訳文提出日】2024-05-22
(86)【国際出願番号】 IB2023050649
(87)【国際公開番号】W WO2023112010
(87)【国際公開日】2023-06-22
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】523031161
【氏名又は名称】ディストリビューテッド クリエーション インコーポレイテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】コレツキー、アレハンドロ
(72)【発明者】
【氏名】ラジャシェカラッパ、ナヴィーン ササル
(72)【発明者】
【氏名】ラジクマール、アスウィン
【テーマコード(参考)】
5D182
【Fターム(参考)】
5D182AC01
5D182AD04
5D182AD05
5D182AD10
(57)【要約】
拡張可能な類似度ベース適合音楽ミックス生成が開示される。音楽クリップがピッチインターバル空間に投影され、ピッチインターバル空間においてクリップ間の音楽適合性が距離または類似度として計算される。クリップ間の距離または類似度は、クリップが倍音適合する程度を反映する。ピッチインターバル空間における候補音楽クリップと部分ミックスとの間の距離または類似度を使用して、候補音楽クリップが部分ミックスと倍音適合するかが判定され得る。インデックス可能特徴空間は、1分あたりの拍数(BPM)及び音楽キーの両方に非依存であり得るため、潜在的に数百万の音楽クリップ間の倍音適合性を迅速に判定することができる。グラフィカルユーザインターフェースベースのユーザアプリケーションにより、ユーザは、調和性が高く心地よいサウンドで、音楽の倍音性の原理を反映した知覚的に高品質なミックスを生み出すクリップの組み合わせを、ライブラリから容易に見つけることが可能となる。
【特許請求の範囲】
【請求項1】
拡張可能な類似度ベース適合音楽ミックス生成のための方法であって、
示された1つ以上の音楽クリップの集合と倍音適合性のある音楽クリップの要求を受信することと、
前記示された音楽クリップ集合の第1のピッチインターバル空間表現と、特定の音楽クリップの第2のピッチインターバル空間表現に基づいて、所定の音楽拍数にわたり前記示された音楽クリップ集合と倍音適合性がある前記特定の音楽クリップを識別することと、
前記要求に対する応答を提供することであって、前記応答は、前記示された音楽クリップ集合の前記第1のピッチインターバル空間表現と、前記特定の音楽クリップの前記第2のピッチインターバル空間表現に基づいて、前記所定の音楽拍数にわたり前記示された音楽クリップ集合と倍音適合性があると識別された前記特定の音楽クリップを示す、前記提供することと、
を含み、
1つ以上のコンピュータシステムによって実行される、方法。
【請求項2】
前記示された1つ以上の音楽クリップの集合は、複数の音楽クリップを含み、
前記複数の音楽クリップの各音楽クリップは、各自のピッチインターバル空間表現で表され、
前記方法はさらに、前記複数の音楽クリップの各音楽クリップの前記各自のピッチインターバル空間表現に基づいて、前記所定の音楽拍数にわたる前記示された音楽クリップ集合の前記第1のピッチインターバル空間表現を生成することを含む、請求項1に記載の方法。
【請求項3】
前記示された音楽クリップ集合を含む現行の音楽クリップスタックに、前記特定の音楽クリップを含めること、
をさらに含む、請求項1に記載の方法。
【請求項4】
ピッチインターバル空間における前記第1のピッチインターバル空間表現と前記第2のピッチインターバル空間表現との間の距離または類似度に基づいて、前記特定の音楽クリップが、前記所定の音楽拍数にわたり前記示された音楽クリップ集合と倍音適合性があると識別すること、
をさらに含む、請求項1に記載の方法。
【請求項5】
前記第1のピッチインターバル空間表現及び前記第2のピッチインターバル空間表現のそれぞれは、1分あたりの拍数に依存しない、請求項1に記載の方法。
【請求項6】
前記特定の音楽クリップが前記示された音楽クリップ集合と倍音適合性があることを示すグラフィカルユーザインターフェースを提示させること、
をさらに含む、請求項1に記載の方法。
【請求項7】
前記要求は、前記示された音楽クリップ集合の前記第1のピッチインターバル空間表現を含む、請求項1に記載の方法。
【請求項8】
前記応答は、前記特定の音楽クリップの識別子を含む、請求項1に記載の方法。
【請求項9】
前記特定の音楽クリップのクロマ顕著性マップに基づいて、前記所定の音楽拍数分の拍単位ピッチインターバル空間表現の集合を計算し、前記拍単位ピッチインターバル空間表現の集合に基づいて、前記第2のピッチインターバル空間表現を形成することに基づいて、前記特定の音楽クリップの前記第2のピッチインターバル空間表現を計算すること、
をさらに含む、請求項1に記載の方法。
【請求項10】
前記所定の拍数は、2、4、8、16、32、または64である、請求項1から9のいずれか一項に記載の方法。
【請求項11】
1つ以上のプロセッサを有する1つ以上のコンピュータシステムを備えるシステムであって、前記1つ以上のコンピュータシステムは、音楽ミキシングサービスを実施し、前記音楽ミキシングサービスは命令を含み、前記命令は前記1つ以上のプロセッサにより実行されると、
第1の音楽クリップのクロマ顕著性マップに基づいて、拍単位ピッチインターバル空間ベクトルの集合を計算することと、
前記拍単位ピッチインターバル空間ベクトルの集合に基づいて、前記第1の音楽クリップに関して第1のクリップ単位ピッチインターバル空間ベクトルを形成することと、
ピッチインターバル空間における第2の音楽クリップに関して形成された第2のクリップ単位ピッチインターバル空間ベクトルと、前記第1の音楽クリップに関して形成された前記第1のクリップ単位ピッチインターバル空間ベクトルとの間の距離または類似度に基づいて、前記第1の音楽クリップと倍音適合性のある前記第2の音楽クリップを識別することと、
を前記1つ以上のコンピュータシステムに実行させる、システム。
【請求項12】
前記第1の音楽クリップの前記クロマ顕著性マップに基づいて、前記拍単位ピッチインターバル空間ベクトルの集合を計算することは、
前記クロマ顕著性マップに関して、1分あたりの拍数非依存クロマ表現を生成することと、
前記1分あたりの拍数非依存クロマ表現の信号に、フーリエ変換を適用することと、
を含む、請求項11に記載のシステム。
【請求項13】
前記拍単位ピッチインターバル空間ベクトルの集合はそれぞれ、前記クロマ顕著性マップに基づいて生成された1分あたりの拍数非依存クロマ表現の信号にフーリエ変換を適用した結果得られる6つの実数成分及び6つの虚数成分を含む12次元ベクトルである、請求項11に記載のシステム。
【請求項14】
前記拍単位ピッチインターバル空間ベクトルの集合に基づいて前記第1のクリップ単位ピッチインターバル空間ベクトルを形成することは、前記拍単位ピッチインターバル空間ベクトルの集合を連結することを含む、請求項11に記載のシステム。
【請求項15】
前記音楽ミキシングサービスは命令を含み、前記命令は前記1つ以上のプロセッサにより実行されると、
クリップ単位ピッチインターバル空間ベクトルをクエリキーとして使用する近似最近傍検索をサポートするインデックスにおいて、前記第1のクリップ単位ピッチインターバル空間ベクトルにより前記第1の音楽クリップをインデックス化すること、
を前記1つ以上のコンピュータシステムにさらに実行させる、請求項11に記載のシステム。
【請求項16】
前記音楽ミキシングサービスは命令を含み、前記命令は前記1つ以上のプロセッサにより実行されると、
インデックスにおいて、前記第2の音楽クリップを第2のクリップ単位ピッチインターバル空間ベクトルでインデックス化すること、
を前記1つ以上のコンピュータシステムにさらに実行させ、
前記第1の音楽クリップと倍音適合性のある前記第2の音楽クリップを識別することは、前記第1のクリップ単位ピッチインターバル空間ベクトルをクエリキーとして使用して、前記インデックスの近似最近傍検索を実行することを含む、請求項11に記載のシステム。
【請求項17】
前記インデックスは、量子化ベースインデックス、ツリーベースインデックス、またはグラフベースインデックスである、請求項16に記載のシステム。
【請求項18】
前記音楽ミキシングサービスは命令を含み、前記命令は前記1つ以上のプロセッサにより実行されると、
前記第1の音楽クリップと倍音適合性のある音楽クリップの要求を受信することと、
前記要求に対して、前記第2の音楽クリップを示す応答を提供することと、
を前記1つ以上のコンピュータシステムにさらに実行させる、請求項11から17のいずれか一項に記載のシステム。
【請求項19】
前記音楽ミキシングサービスは命令を含み、前記命令は前記1つ以上のプロセッサにより実行されると、
前記拍単位ピッチインターバル空間ベクトルの集合の前記計算することと、前記第1のクリップ単位ピッチインターバル空間ベクトルを前記形成することと、及び前記要求の受信に対する応答で前記第2の音楽クリップを前記識別することと、のすべてを実行すること、
を前記1つ以上のコンピュータシステムにさらに実行させる、請求項18に記載のシステム。
【請求項20】
前記音楽ミキシングサービスは命令を含み、前記命令は前記1つ以上のプロセッサにより実行されると、
前記第1の音楽クリップが前記第2の音楽クリップと倍音適合性があることを示すグラフィカルユーザインターフェースを提示させること、
を前記1つ以上のコンピュータシステムにさらに実行させる、請求項11から17のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、コンピュータ生成音楽の分野に関し、より具体的には、拡張可能な類似度ベース適合音楽ミックス生成のための新しく有用なコンピュータ実施システム及びコンピュータ実施方法に関する。
【背景技術】
【0002】
音楽ミックスの作成は、音楽トラックの作成及び組み合わせを含む。この創作的な取り組みは、DJ及びエレクトロニックダンスミュージック(EDM)に関連することが多い。最近では、デジタル形式の著作権フリーサウンドのオンラインコレクションにより、音楽ミックスの作成は容易になった。このようなコレクションの一例として、カリフォルニア州サンタモニカ及びニューヨーク州ニューヨークのSPLICE.COMから入手可能なサウンドサンプルライブラリが挙げられる。このようなライブラリには、数千または数百万ものサウンドサンプルが含まれ得る。このようなライブラリのサイズは、計算効率の高い方法で基準に合致するサウンドを取得するという技術的課題をもたらす。音楽ミックスを作成するためには、音楽的に適合するサウンドの検索、発見、及び取得を効率化するコンピュータベースツールが必要である。本発明は、このような新しく有用なシステム及び方法を提供する。
【図面の簡単な説明】
【0003】
【
図1】いくつかの変形形態による、類似度に基づいて適合音楽ミックスを生成するためのシステムを示す。
【
図2】いくつかの変形形態による、音楽クリップに関して、1分あたりの拍数(BPM)に依存しないクリップ単位ピッチインターバル空間ベクトルを生成し、インデックス化するための方法を示す。
【
図3】いくつかの変形形態による、例示的音楽クリップの定Q変換マトリクスを、プロットで示す。
【
図4】いくつかの変形形態による、
図3に示される定Q変換マトリクスに基づいて生成されたクロマ顕著性マップを、プロットで示す。
【
図5】いくつかの変形形態による、
図4に示されるクロマ顕著性マップに基づいて生成された1分あたりの拍数に依存しないクロマ表現を、プロットで示す。
【
図6】いくつかの変形形態による、
図5のBPM非依存クロマ表現マトリクスから生成された拍単位ピッチインターバル空間ベクトルの実数成分及び虚数成分を含む2つのマトリクスを、プロットで示す。
【
図7】いくつかの変形形態による、
図6の2つのマトリクスの実数成分と虚数成分とを連結した結果を、プロットで示す。
【
図8】いくつかの変形形態による、
図7のマトリクスをクリップ単位ピッチインターバル空間ベクトルに平坦化したものを示す。
【
図9】いくつかの変形形態による、
図8に示されるクリップ単位ピッチインターバル空間ベクトルの値を、波形プロットで示す。
【
図10】いくつかの変形形態による、スタックベース音楽ミキシングアプリケーションのグラフィカルユーザインターフェースの様々な状態を示す。
【
図11】いくつかの変形形態による、スタックベース音楽ミキシングアプリケーションのグラフィカルユーザインターフェースの様々な状態を示す。
【
図12】いくつかの変形形態による、スタックベース音楽ミキシングアプリケーションのグラフィカルユーザインターフェースの様々な状態を示す。
【
図13】いくつかの変形形態による、スタックベース音楽ミキシングアプリケーションのグラフィカルユーザインターフェースの様々な状態を示す。
【
図14】いくつかの変形形態による、スタックベース音楽ミキシングアプリケーションのグラフィカルユーザインターフェースの様々な状態を示す。
【
図15】いくつかの変形形態による、スタックベース音楽ミキシングアプリケーションのグラフィカルユーザインターフェースの様々な状態を示す。
【
図16】いくつかの変形形態による、スタックベース音楽ミキシングアプリケーションのグラフィカルユーザインターフェースの様々な状態を示す。
【
図17】いくつかの変形形態による、スタックベース音楽ミキシングアプリケーションのグラフィカルユーザインターフェースの様々な状態を示す。
【
図18】いくつかの変形形態による、スタックベース音楽ミキシングアプリケーションのグラフィカルユーザインターフェースの様々な状態を示す。
【
図19】いくつかの変形形態による、スタックベース音楽ミキシングアプリケーションのグラフィカルユーザインターフェースの様々な状態を示す。
【
図20】いくつかの変形形態による、スタックベース音楽ミキシングアプリケーションのグラフィカルユーザインターフェースの様々な状態を示す。
【
図21】いくつかの変形形態による、スタックベース音楽ミキシングアプリケーションのグラフィカルユーザインターフェースの様々な状態を示す。
【
図22】いくつかの変形形態による、スタックベース音楽ミキシングアプリケーションのグラフィカルユーザインターフェースの様々な状態を示す。
【
図23】いくつかの変形形態が実施され得るコンピュータシステムを示す。
【発明を実施するための形態】
【0004】
好ましい実施形態に関する下記の説明には、本開示をこれらの好ましい実施形態に限定する意図はなく、むしろ、あらゆる当業者が本開示を実施及び使用することを可能にする意図がある。
【0005】
音楽ミックスを構成する音楽クリップ(例えばミックス、ステム、または個々のトラック)の適合性は、ミックスの知覚品質にとって非常に重要となり得る。知覚的に高品質なミックスは、音楽の倍音性の原理を反映し、実施し、または満たす、調和性が高く心地よいサウンドのミックスである。残念ながら、どの音楽クリップを組み合わせると知覚的に高品質なミックスが生み出されるかは、事前に知らない場合がある。よって、音楽クリップの様々な組み合わせを試せる機能は有用である。試したいという要望とともに、知覚的に高品質なミックスを制作したいという要望も存在する。
【0006】
いくつかの変形形態では、本明細書で開示されるコンピュータ実施技法は、音楽ミックス作成の状況において、知覚的に高品質の音楽ミックスを提供する音楽クリップの組み合わせを、ユーザが容易に発見することを支援する。この技法は、倍音適合性手法を使用して、様々な音楽クリップを試す必要性と、知覚的に高品質なクリップを効率的に発見する必要性とのバランスをとる。本手法は、ピッチインターバル空間を使用して、音楽クリップ間の倍音適合性を、ピッチインターバル空間における音楽クリップ間の距離または類似度で計算することを含む。ピッチインターバル空間における音楽クリップ間の距離または類似度は、音楽クリップが倍音適合する度合を反映する。1つ以上の音楽クリップの部分ミックスに追加する候補音楽クリップが与えられると、ピッチインターバル空間における候補音楽クリップと部分ミックスとの間の距離または類似度を使用して、候補音楽クリップが部分ミックスと倍音適合するかが判定され得る。いくつかの変形形態では、1分あたりの拍数(BPM)及び音楽キーの両方に依存しないインデックス可能特徴空間が提供される。すなわち、クリップのBPMまたはキーが異なっていても、クリップ間の倍音適合性を判定することができる。さらに、音楽クリップのインデックスは、数百万の音楽クリップに拡張することができ、これを使用して、所与の音楽クリップと倍音適合する音楽クリップを低遅延(例えば10ミリ秒未満)で識別することができる。
【0007】
いくつかの変形形態で本明細書の技法が対処する問題の例として、音楽ミキシングコンピューティングシステム(例えばクラウドベース音楽ミキシングコンピューティングシステム)が提供する音楽クリップのライブラリからの音楽クリップを組み合わせた部分ミックスを検討する。次に、システムのユーザは、ライブラリからさらなる音楽クリップ(例えばベースラインステム)を部分ミックスに追加することを望み得る。音楽ミキシングシステムにより、ユーザはライブラリ内の音楽クリップをブラウジング、検索、及びアクセスすることが可能となる。このようなライブラリは、大規模であり得る(例えば数千または数百万の音楽クリップ)。音楽ミキシングシステムのヘルプ及びガイドなしに、部分ミックスと適合する音楽クリップをユーザが見つけることは非常に困難である。よって、完全なミックスを作成する際、ユーザは、適合する音楽クリップを見つけようとして、容易にいら立った状態または圧倒された状態となり得る。よって、膨大な音楽クリップのコレクションの中から適合する音楽クリップを見つけるプロセスでユーザを支援することにより、音楽ミックス作成プロセスを効率化することが、非常に重要である。好適な支援は、例示的な利点として、システムを使用するユーザ、アカウントを作成するユーザ、またはアカウントのアップグレードに意欲的なユーザをより多く確保し得る音楽ミキシングシステムの運営者だけでなく、音楽ミキシングシステムを使用して音楽ミックス作成プロセスを効率化できるユーザ自身にとっても、重要である。部分ミックスとリズムのみ適合する(例えばオンセット密度による)音楽クリップをシステムが提案した場合、結果得られるミックスは、低品質と知覚され得る。ライブラリ内には、部分ミックスとさらに適合し、知覚的に高品質のミックスを生み出す別のクリップが存在する場合がある。本技法により、音楽クリップの適合性を判定するときの音楽属性の範囲が、倍音属性を含むように拡張される。さらに、本技法は、倍音属性だけでなく、それ以外にも使用できる。リズム属性、スペクトル属性、及び音色属性など、あらゆるタイプの音楽属性で使用できる。
【0008】
いくつかの変形形態では、本技法は、音楽クリップの倍音成分が、ピッチインターバル空間における多次元ベクトル(すなわち「ピッチインターバル空間ベクトル」)として表される倍音適合性手法を使用する。各ピッチインターバル空間ベクトルは、ピッチインターバル空間において一意的な位置を有し得、これは、対応する一意的な倍音構成を表す。ピッチインターバル空間におけるこれらのピッチインターバル空間ベクトル間の距離または類似度を計算して、音楽クリップ間の倍音適合性が判定され得る。さらに、ピッチインターバル空間ベクトルの要素単位線形結合(例えばベクトルのエネルギーを使用して平均化または加重平均化することによる)を使用して、候補音楽クリップが部分ミックスと倍音適合するどうかが判定され得る。具体的には、ピッチインターバル空間における(a)部分ミックスを構成する音楽クリップのピッチインターバル空間ベクトルの要素単位線形結合と、(b)候補音楽クリップのピッチインターバル空間ベクトルと、の間の距離または類似度は、候補音楽クリップが部分ミックスと倍音適合する度合を反映する。これらはコンピュータによりベクトルとして表現できることから、ベクトルの要素単位線形結合を計算すること、及びベクトル間の距離または類似度を計算することは、比較的効率的なコンピュータ演算である。よって、ピッチインターバル空間ベクトルにより、音楽ミキシングシステムは、膨大な候補音楽クリップのコレクションの倍音適合性を、効率的に評価することが可能となる。
【0009】
本技法は、いくつかの変形形態では、前に選択した音楽クリップの部分ミックスと音楽的に適合する音楽クリップの提案要求を受信することで、開始する。例えば、前に選択した音楽クリップには、ボーカルクリップ及びピアノクリップが含まれ得る。要求の受信に応じて、本技法は、いくつかの変形形態では、部分ミックスの前に選択した音楽クリップのそれぞれのピッチインターバル空間ベクトルを線形結合して、部分ミックスの倍音属性を表すピッチインターバル空間ベクトルを生成する。本技法は、ピッチインターバル空間における、部分ミックスのピッチインターバル空間ベクトルと、候補音楽クリップの倍音属性を表すピッチインターバル空間ベクトルとの間の距離または類似度を計算する。本技法は、いくつかの変形形態では、ピッチインターバル空間における、部分ミックスを表すピッチインターバル空間ベクトルと、音楽クリップの倍音属性を表すピッチインターバル空間ベクトルとの間の距離に基づいて、部分ミックスと音楽的に適合する特定の候補音楽クリップを提案することで、要求に応答する。本段落の前の例に戻ると、提案される特定の音楽クリップは、ボーカルクリップとピアノクリップのミックスと倍音適合するベースライン音楽クリップであり得る。提案が採用されると、新たな部分ミックスが形成される。このプロセスは、前の部分音楽ミックスに音楽クリップを追加した、または前の部分音楽ミックスの音楽クリップを置き換えた、新たな部分音楽ミックスで、満足のいく音楽ミックスが見つかるまで、毎回繰り返され得る。
【0010】
倍音属性に加えて、本明細書の技法は、いくつかの変形形態では、部分ミックスと候補音楽クリップとの音楽適合性を判定するとき、部分ミックス及び候補音楽クリップのさらなる音楽属性、例えばリズム属性、スペクトル属性、または音色属性などに依存することで、部分ミックスと候補音楽クリップとの倍音品質のみに基づいて適合性の判定が行われないようにする。
【0011】
図1は、いくつかの変形形態による、類似度に基づいて適合音楽ミックスを生成するためのシステムを示す。円内番号でラベル付けられた方向矢印が示すように、音楽ミックス作成プロセスは、システム内で実行される。ラベル付き方向矢印は、個人用電子デバイス120から音楽ミキシングサービス100のフロントエンド102へ、または音楽ミキシングサービス100のフロントエンド102から1つ以上の中間ネットワーク130を介して個人用電子デバイス120へ、該当する矢印の方向のデータフローステップを表す。例えばインターネットプロトコル(IP)、伝送制御プロトコル(TCP)、ハイパーテキスト転送プロトコル(HTTP)(または暗号で保護されたそのバリアントHTTPS)など、任意の適切なデータ通信ネットワークプロトコルを使用するネットワーク130を介して、データは伝送され得る。
【0012】
図1のコンピューティング環境は、本発明の例示的な実施形態を説明するために提示される。議論の目的で、この発明を実施するための形態では、
図1に関する特定の実施例が示され、実施例では、1つのコンピュータシステムが別のコンピュータシステムと通信し得、例えば、ユーザ電子デバイス(例えばデバイス120)が、少なくとも1つのサービス(例えばサービス100)を提供するリモートコンピュータシステムと通信することが想定される。しかしながら、本発明は、いずれの特定の環境またはデバイス構成にも限定されない。具体的には、デバイス120/サービス100の区別は、本発明に必須ではないが、議論の枠組みを提供するために用いられる。むしろ、本発明は、単一デバイス構成を含む、本明細書で提示される本発明の方法論をサポート可能ないずれのタイプのシステムアーキテクチャまたは処理環境でも、実施され得る。いずれのこのような構成においても、データ及び情報(例えば音楽クリップ及びピッチ空間ベクトル)は、1つ以上のアプリケーションプログラミングインターフェース(API)の集合に従ってコンピューティングコンポーネント間で交換され得、APIは、単一プロセス(例えばプロシージャまたは関数)内で使用され得、または同じコンピューティングデバイス上で実行されるプロセス間で使用され得(例えばプロセス間API)、またはネットワークにより相互接続された異なるコンピューティングデバイス上で実行されるプロセス間で使用され得る(例えばネットワークAPI)。
【0013】
文脈上明らかに別段の指示がない限り、本明細書で使用される「要求」という用語は、APIを介して作成、送信、または受信される1つ以上のコール、呼び出し、またはメッセージの集合を指し、「応答」という用語は、対応するリクエストにより引き起こされた、APIを介して作成、送信、または受信される1つ以上のコール、呼び出し、またはメッセージの集合を指す。さらに、本明細書におけるエンティティ(例えばデバイス)から受信される要求または応答への言及では、要求または応答がエンティティから直接受信される必要はなく、要求または応答は、ターゲットエンティティに到達する前に1つ以上の中間エンティティを通過してもよい。同様に、エンティティ(例えばデバイス)に送信される要求または応答への言及では、要求または応答がエンティティに直接送信される必要はなく、要求または応答は、ソースエンティティから途中で1つ以上の中間エンティティを通過してもよい。
【0014】
図1に示されるようないくつかの変形形態では、類似度に基づいて適合音楽ミックスを生成するための技法は、クライアント電子デバイス(例えば個人用電子デバイス120)が1つ以上のデータ通信ネットワーク(例えば中間ネットワーク130)を介してクラウドベースサービス(例えば音楽ミキシングサービス100)のサーバ電子デバイスとインターフェースする分散コンピューティング環境で実施されるが、いくつかの変形形態では、類似度に基づいて適合音楽ミックスを生成するための技法は、単一の電子デバイスにより、または少数の電子デバイスのみにより実行される。例えば、類似度に基づいて適合音楽ミックスを生成するための技法は、デジタルオーディオワークステーション(DAW)または自宅もしくは職場のパーソナルコンピュータなどの個人用電子デバイスにより、クラウドベースの実施態様と比べて小規模に実施され得る。
【0015】
音楽ミックス作成プロセスは、ステップ1で開始し、電子デバイス120がスタックテンプレートの選択を提供する。「スタック」とは、本明細書で開示される技法に従って生成される音楽クリップを指し、レイヤー化され、同期化され、音楽的に適合する複数の音楽クリップの集合から構成され得る。よって、スタックは、他のスタックまたは音楽クリップから構成され得る音楽クリップである。
【0016】
いくつかの変形形態では、スタックを構成する音楽クリップのうちの1つ以上が、スタックの各レイヤーに含まれる。例えば、スタックのレイヤーには、ドラム音楽クリップ、ベース音楽クリップ、ギター音楽クリップ、キー音楽クリップ、弦楽器音楽クリップ、ボーカル音楽クリップ、コード音楽クリップ、リード音楽クリップ、パッド音楽クリップ、金管楽器及び木管楽器の音楽クリップ、シンセ音楽クリップ、サウンドエフェクトクリップなどが含まれ得る。
【0017】
いくつかの変形形態では、選択されるスタックテンプレートは、個人用電子デバイス120で音楽ミキシングコンピュータプログラムまたはソフトウェアアプリケーションを使用してユーザ110が選択可能な、事前定義されたスタックテンプレートの集合のうちの1つであり得る。例えば、事前定義されたスタックテンプレートの集合は、ユーザ110が1つを選択できるように、個人用電子デバイス120のグラフィカルユーザインターフェースに提示され得る。音楽ミキシングアプリケーションは、いわゆるモバイルアプリケーションであり得、個人用電子デバイス120で実行されるように設計され、例えばGOOGLE PLAY STORE、APPLE APP STORE、またはMICROSOFT STOREなどのアプリケーションマーケットプレイス(「アプリストア」)を使用して、ダウンロード及びインストールすることができる。
【0018】
いくつかの変形形態では、個人用電子デバイス120は、スマートフォン、またはタブレット電子デバイスなどのポータブル電子デバイスである。しかし、いくつかの変形形態では、個人用電子デバイス120は、別のタイプの電子デバイスである。例えば、個人用電子デバイス120は、パーソナルコンピュータまたはデジタルオーディオワークステーション(DAW)であり得る。いくつかの変形形態では、音楽ミキシングアプリケーションは、モバイルアプリケーションであるが、他の変形形態では、音楽ミキシングアプリケーションは、ウェブブラウザベースアプリケーション、またはシッククライアントアプリケーション、またはシンクライアントアプリケーションである。個人用電子デバイス120の電子デバイスのタイプは必須ではなく、音楽ミキシングアプリケーションのアプリケーションのタイプも必須ではない。ユーザ110及び個人用電子デバイス120は、通常、可能性のあり得る多数の異なるユーザ、及び可能性のあり得る多数の異なる個人用電子デバイスを表し、これらの個人用電子デバイスには、いつでもサービス100と同時にインターフェースし得る、可能性のあり得る異なるタイプの音楽ミキシングアプリケーションがインストールされている。
【0019】
いくつかの変形形態では、ステップ1で受信されたスタックテンプレートの選択は、音楽のジャンル、スタイル、カテゴリ、クラス、グループ、系統、または種類などを示す。例えば、選択されたスタックテンプレートは、ダンス、アコースティック、ランダム、アンビエント/ドラムレス、ローファイ及びヒップホップ、トラップ/ラップなどのうちの1つに関し得る。フロントエンド102がスタックテンプレートの選択を受信したことに応じて、選択内容はバックエンド104に提供され、さらに処理される。いくつかの変形形態では、バックエンド104は、選択されたスタックテンプレートを構成する1つ以上の事前定義レイヤーの集合を特定する。「レイヤー」とは、本明細書で開示される技法を使用してユーザが構成できる、スタックの個別音楽パートを指す。選択可能な様々なスタックテンプレートにより、事前定義レイヤーの集合は異なり得る。例えば、ダンススタックテンプレートには、ドラムレイヤー、キーレイヤー、パッドレイヤー、ベースレイヤー、及びシンセレイヤーが含まれ得、アコースティックスタックテンプレートには、ドラムレイヤー、パッドレイヤー、ベースレイヤー、リードレイヤー、及びボーカルレイヤーが含まれ得、ランダムスタックテンプレートには、キーレイヤー、ベースレイヤー、弦楽器レイヤー、及びドラムレイヤーが含まれ得、アンビエント/ドラムレススタックテンプレートには、パッドレイヤー、リードレイヤー、ベースレイヤー、ボーカルレイヤー、及びサウンドエフェクトレイヤーが含まれ得、ローファイ及びヒップホップレイヤーには、ドラムレイヤー、ベースレイヤー、パッドレイヤー、及びボーカルレイヤーが含まれ得、ならびにトラップ/ラップレイヤーには、ドラムレイヤー、キーレイヤー、パッドレイヤー、ベースレイヤー、及びシンセレイヤーが含まれ得る。上記の実施例では、各スタックテンプレートは、複数の事前定義レイヤーで構成されているが、スタックは、1つの事前定義レイヤーのみで構成されてもよい。さらに、本明細書で開示される技法を使用することで、ユーザは、選択したスタックテンプレートにさらなるレイヤーを追加、及び選択したスタックテンプレートからレイヤーを削除し得る。よって、選択されたスタックテンプレートは、ユーザが音楽ミックス作成プロセスを開始するための開始点とみなされ得、よって、ユーザは、スクラッチから始める必要なく、代わりに所定のスタック/ミックスから開始することができ、ユーザは、本明細書で開示される技法を使用して必要に応じて、所定のスタック/ミックスを調整することができる。
【0020】
いくつかの変形形態では、フロントエンド102は、フロントエンド102のAPIエンドポイントを介して、個人用電子デバイス120の音楽ミキシングアプリケーションに、サービス100のアプリケーションプログラミングインターフェース(API)へのアクセスを提供する。APIエンドポイントは、個人用電子デバイス120及び他の電子デバイスにより使用され、音楽ミキシングサービス100のサービス及びリソースの要求が、中間ネットワーク130を介して行われ得る。このようなサービス及びリソースは、
図1に示されるステップ1、ステップ3、及びステップ5の要求を受信して応答する能力を含み得る。ステップ1、ステップ3、及びステップ5のようにデバイス120による要求など、サービスまたはリソースの要求をAPIエンドポイントを介してサービス100に対して行うとき、APIエンドポイントは、ユニフォームリソースインジケータ(URI)のネットワークプロトコル指定(例えばHTTPS)とともに使用され得る。APIエンドポイントの例としては、フロントエンド102のドメインネームサービス(DNS)名が挙げられる。
【0021】
いくつかの変形形態では、フロントエンド102のAPIエンドポイントを介してアクセス可能なサービス100のAPIは、特定の通信スタイルに準拠する。使用され得る可能性のあるスタイルには、Representational State Transfer(REST)スタイル、またはWeb Socketsスタイルなどがある。RESTスタイルは、要求応答通信モデルを使用するステートレス通信プロトコルである。よって、HTTP要求またはHTTPS要求ごとに、新たなネットワーク接続(例えば伝送制御プロトコル(TCP)接続)が確立され得る。Web Socketsスタイルは、ステートフル通信プロトコルであり、単一ネットワーク接続(例えば単一TCP接続)を介した全二重通信を可能にする。REST通信スタイルは、ネットワーク接続を確立する際にオーバーヘッドが生じるため、ネットワークメッセージの送信に関しては、通常、Web Socketsスタイルよりも遅い。しかし、RESTのステートレスな性質により、送信データのメモリ及びバッファリング要件は軽減される。フロントエンド102がRESTスタイルを使用するか、Web Socketスタイルを使用するかに関係なく、デバイス120とフロントエンド102との間で送信されるデータなど、フロントエンド102が受信及び送信するデータは、JavaScript Object Notation(JSON)、またはeXtensible Markup Language(XML)などのデータ交換フォーマットに従ってカプセル化またはフォーマット化され得る。
【0022】
いくつかの変形形態では、フロントエンド102、バックエンド104、クリップ単位ピッチインターバル空間ベクトルインデックス106、及びサウンドライブラリ108を含む音楽ミキシングサービス100自体は、通常、「クラウド」コンピューティングモデルに準拠する、またはこれを活用する。クラウドコンピューティングモデルにより、ネットワーク、サーバ、ストレージアプリケーション、及びサービスといった構成可能なリソースの共有プールへ、ユビキタスで便利なオンデマンドネットワークアクセスが可能となる。音楽ミキシングサービス100のプロバイダは、例えばSoftware‐as‐a‐Service(「SaaS」)モデルを含む様々な異なるクラウドコンピューティングモデルに従って、自身の音楽ミキシング機能をユーザに提供し得る。SaaSでは、音楽ミキシングサービスプロバイダがクラウドインフラストラクチャプロバイダの顧客であるとき、クラウドインフラストラクチャプロバイダが提供するインフラストラクチャ上で実行される音楽ミキシングサービスプロバイダのソフトウェアアプリケーションを使用して、音楽ミキシング機能がユーザに提供される。アプリケーションは、ウェブブラウザなどのシンクライアントインターフェース、またはアプリケーションプログラミングインターフェースのいずれかを介して、様々なクライアントデバイスからアクセス可能であり得る。インフラストラクチャは、サーバ、ストレージ、及びネットワークコンポーネントなどのハードウェアリソースと、ハードウェアインフラストラクチャで展開されるソフトウェアとを含み、これらは、提供される音楽ミキシング機能をサポートするために必要である。通常、SaaSモデルでは、音楽ミキシングサービスプロバイダは、限定された顧客特有アプリケーション構成設定を除いた、ネットワーク、サーバ、オペレーティングシステム、ストレージ、または個々のアプリケーション機能を含む基礎インフラストラクチャを、管理または制御しない。
【0023】
フロントエンド102とバックエンド104は、通常、音楽ミキシングサービス100のプレゼンテーション層と、音楽ミキシングサービス100のデータアクセス/処理層との関心の分離を表す。いくつかの変形形態では、バックエンド104は、電子デバイス120がフロントエンド102を介してアクセス可能なアプリケーションプログラミングインターフェース(API)を実装する。
【0024】
サウンドライブラリ108は、音楽クリップのデータベースを含む。いくつかの変形形態では、音楽クリップは、デジタルオーディオ信号データを含むコンピュータファイルシステムファイルまたは他のデータコンテナ(例えばコンピュータデータベースレコード)などのデジタルオーディオ信号ソースとして、サウンドライブラリ108に格納される。例えば、デジタルオーディオ信号ソースに含まれるデジタルオーディオ信号データは、人間による演奏または他の聴覚パフォーマンスの記録を表し、あるいは機械により生成された音楽またはサウンドを表し得る。デジタルオーディオ信号ソースのデジタルオーディオ信号データは、非圧縮された状態で、または可逆エンコードフォーマットで圧縮された状態で、または非可逆エンコードフォーマットで圧縮された状態で、格納され得る。デジタルオーディオ信号ソースのデジタルオーディオ信号データに関して、可能なデジタルオーディオデータフォーマットの非限定的な例を、それらの既知のファイル拡張子で示すと、.AAC、.AIFF、.AU、.DVF、.M4A、.M4P、.MP3、.OGG、.RAW、.WAV、及び.WMAが挙げられる。
【0025】
いくつかの変形形態では、サウンドライブラリ108内の音楽クリップのデジタルオーディオ信号データは、ループを表す。ループとは、オーディオ素材の繰り返し可能なセクションであり、マイクロフォン、ターンテーブル、デジタルサンプラ、ルーパーペダル、シンセサイザ、シーケンサ、ドラムマシン、テープマシン、ディレイユニット、コンピュータ音楽ソフトウェアを使用するプログラミングなどを含むが、これらに限定されない様々な音楽作成技術を使用して作成され得る。ループは、多くの場合、音楽小節(例えば1小節、2小節、4小節、または8小節)に対応するリズムパターンまたは音符またはコードシーケンスもしくはコード進行を含む。通常、ループは無限に繰り返され得、さらに聴覚上の音楽的連続性が保持され得る。いくつかの変形形態では、サウンドライブラリ108内の音楽クリップのデジタルオーディオ信号データは、ループの形式で、トラック、ステム、またはミックスを表す。トラック、ステム、またはミックスは、モノラルまたはステレオであり得る。
【0026】
いくつかの変形形態では、ライブラリ108は、数百、数千、数百万、またはそれ以上の音楽クリップを含む。例えば、ライブラリ108は、ユーザ、コンピュータ、またはマシンにより生成または記録されたサウンドのコレクションであり得、例えばクラウドベース音楽作成及びコラボレーションプラットフォームにより提供される音楽サンプルライブラリなどであり得、例えばカリフォルニア州サンタモニカ及びニューヨーク州ニューヨークのSPLICE.COMから入手可能なサウンドライブラリなどであり得る。
【0027】
ライブラリ108内の音楽クリップの異なるサウンドコンテンツカテゴリを区別せずに、異質の音楽クリップのライブラリ108に本技法を適用することは可能であるが、音楽クリップをサウンドコンテンツカテゴリにグループ化することは有利であり得る。これは、検討する必要のあるライブラリ内の候補音楽クリップの数が少なくなるため(例えばサウンドコンテンツカテゴリに属する候補音楽クリップのみになる)、特定のサウンドコンテンツカテゴリ内で適合音楽クリップを見つける効率を高めるのに役立ち得る。これはまた、所望のサウンドコンテンツカテゴリに属していないライブラリ内の音楽クリップは適合性のあるものとして提案されないため、適合音楽クリップを提案する精度を高めるのにも役立ち得る。例えば、楽器の系統に基づいてサウンドコンテンツカテゴリに分割されているライブラリ108を検討する。このようなサウンドコンテンツカテゴリには、ボーカル、弦楽器、キーボード、木管楽器、金管楽器、及び打楽器が含まれ得る。この事例では、これらのサウンドコンテンツカテゴリのうちの1つの中から適合音楽クリップの提案が行われ得る。このような提案では、サウンドコンテンツカテゴリに属するライブラリ108内の音楽クリップのみが提案対象として検討する必要があり、特定のサウンドコンテンツカテゴリに属さない音楽クリップは提案対象として検討する必要がないことから、検討する必要のあるライブラリ108内の音楽クリップが少なくなるため、提案を行うための計算負荷が軽減される。さらに、ユーザが特定のサウンドコンテンツカテゴリ内の適合音楽クリップの提案を所望する場合は、提案対象をサウンドコンテンツカテゴリ内の音楽クリップのみに制限することにより、確実に所望のサウンドコンテンツカテゴリ内の音楽クリップの提案が行われ得る。
【0028】
いくつかの変形形態では、ライブラリ108のオーディオトラックにグループ化された異なるサウンドコンテンツカテゴリは、異なるサウンドコンテンツカテゴリ内の基礎デジタルオーディオ信号の統計分布におけるカテゴリ差異を反映し得る。このように、サウンドコンテンツカテゴリは、統計分布のクラスまたはタイプに対応し得る。最上位サウンドコンテンツカテゴリは、楽器、楽器のタイプ、ジャンル、ムード、または目下の実施態様の要件に適した他のサウンド属性に基づいて、さらに細分化され、サウンドコンテンツカテゴリの階層が形成され得る。例として、サウンドコンテンツカテゴリの階層は、ループ及びワンショットの最上位サウンドコンテンツカテゴリを含み得る。次いで、これらの最上位サウンドコンテンツカテゴリのそれぞれは、第2の階層レベルに、ドラムカテゴリ及び楽器カテゴリを含み得る。各楽器カテゴリは、ボーカルと、ドラム以外の楽器とを含み得る。各楽器カテゴリは、第3の階層レベルにおいて、楽器系統(例えばボーカル、弦楽器、キーボード、木管楽器、及び金管楽器のサウンドコンテンツカテゴリ)に、さらに細分化され得る。
【0029】
上記は、音楽クリップのライブラリ108がカテゴリ化され得る、可能性のあるサウンドコンテンツカテゴリ階層の非限定的な一例にすぎない。他のカテゴリも可能であり、本技法は、いずれのカテゴリまたはカテゴリ集合またはカテゴリ階層にも限定されない。さらに、サウンドコンテンツカテゴリは、ライブラリ108内の見込まれるまたは見つかった異なるサウンドカテゴリに基づくことを含む目下の実施態様の要件に従って、発見的または経験的に選択されてもよいが、サウンドコンテンツカテゴリは、コンピュータにより実施される教師なしのクラスタリングアルゴリズム(例えば排他的、重複的、階層的、または確率的なクラスタリングアルゴリズム)に従って、学習または計算され得る。
【0030】
例えば、ライブラリ108内の音楽クリップは、音楽クリップのデジタルオーディオ信号データから抽出または検出された1つ以上の属性間の類似度に基づいて、サウンドコンテンツカテゴリに対応する異なるクラスタにグループ化(クラスタ化)され得る。音楽クリップがクラスタ化され得るこのようなサウンド属性には、例えば、経時的な信号振幅の統計分布、ゼロ交差率、スペクトル重心、信号データのスペクトル密度、信号データのスペクトル帯域幅、信号データのスペクトル平坦性、または信号データの倍音属性のうちの1つ以上が含まれ得る。クラスタ化が行われる場合、これらのサウンド属性のうちの1つ以上に関して類似度の高い音楽クリップは、同じクラスタに一緒にクラスタ化される可能性が当然高くなり、これらのサウンド属性のうちの1つ以上に関して類似度の低い音楽クリップは、同じクラスタに一緒にクラスタ化される可能性が当然低くなる。ライブラリ内の音楽クリップは1つのサウンドコンテンツカテゴリのみに属することができるが、例えば、サウンドコンテンツカテゴリを識別するのに重複クラスタリングアルゴリズムが使用される場合、音楽クリップは複数のサウンドコンテンツカテゴリに属し得ることに、留意されたい。
【0031】
いくつかの変形形態では、ライブラリ108内の音楽クリップは、それらが属する、または割り当てられたサウンドコンテンツカテゴリにより、インデックス106内でインデックス化される。このようにすることにより、特定のサウンドコンテンツカテゴリに属するライブラリ108内の音楽クリップは、インデックス106を使用して効率的に識別することができる。いくつかの変形形態では、適合音楽クリップの検索は、インデックス106を使用して、1つ以上のサウンドコンテンツカテゴリの指定集合または所定集合に属する音楽クリップのみに制限される。例えば、インデックス106を使用して、検索空間(検討される候補音楽クリップの集合)がライブラリ108内のギター音楽クリップのみに制限された適合音楽クリップ検索が行われ得る。
【0032】
いくつかの変形形態では、クリップ単位ピッチインターバル空間ベクトルインデックス106は、ライブラリ108内の音楽クリップを、音楽クリップから生成されたクリップ単位ピッチインターバル空間ベクトルにより、インデックス化する。いくつかの変形形態では、音楽クリップのクリップ単位ピッチインターバル空間ベクトルは、音楽クリップに関して生成された拍単位ピッチインターバル空間ベクトルの集合から生成される。クリップ単位ピッチインターバル空間ベクトルは、1小節あたりの拍数(例えば1、2、4、8、16など)から成る音楽クリップの小節(例えば2、4、6、8、10、12、16など)を表し得る。例えば、1小節あたり4拍の8小節の音楽クリップを表すクリップ単位ピッチインターバル空間ベクトルは、32拍単位のピッチインターバル空間ベクトルから生成される。拍単位ピッチインターバル空間ベクトルの次元数は、いくつかの変形形態では、ピッチクラスの数(例えば12)である。ピッチクラスとは、オクターブ及び異名同音の等価性により関連付けられたピッチのグループである。ピッチとは、個別の周波数を有する別個の音である。例えば、ピッチクラスの数は12個であり得、拍単位ピッチインターバル空間ベクトルの各要素は、例えば{要素0:ピッチクラスC、1:C#、2:D、3:D#、4:E、5:F、6:F#、7:G、8:G#、9:A、10:A#、11:B}など、12個のピッチインターバル空間のうちの1つに対応する。
【0033】
いくつかの変形形態では、ピッチインターバル空間は、ピッチ、コード、及びキーに関する人間の知覚、ならびに音楽理論の原理を、距離として表す。マルチレベルピッチ構成は、ピッチインターバル空間において12次元ベクトルで表される。いくつかの変形形態では、マルチレベルピッチ構成は、ピッチインターバル空間においてピッチインターバル空間ベクトルT(k)により表され、ピッチクラス分布またはクロマベクトル入力c(n)の離散フーリエ変換(DFT)として、次のように計算される。
【数1】
【0034】
【0035】
いくつかの変形形態では、変数Nは12であり、入力クロマベクトルの次元を表す。変数w(k)は、ダイアド協和性の経験的評価から導出された重みを表し、ピッチインターバル空間の各次元kの寄与を調整するために使用される。いくつかの変形形態では、オーディオ入力の場合、w(k)は、集合{3、8、11.5、15、14.5、7.5}である。いくつかの変形形態では、シンボリック入力の場合、w(k)は、集合{2、11、17、16、19、7}である。残りの係数は対称であるため、変数kの範囲は、1~6(または0~5)であり得る(1~12(または0~11)である必要はない)。
【0036】
いくつかの変形形態では、T(k)の式は、入力クロマベクトルc(n)がそのL‐1ノルムで正規化された
【数3】
を使用し、これにより、調性ピッチの異なる階層レベルの表現及び比較が可能となる。フーリエ解析の観点から、T(k)は、いくつかの変形形態では、それぞれが複素共役に対応する6つの複素数のシーケンスとして解釈される。6つの複素数のシーケンスは、6つの対応する円として視覚化され得る。音楽的解釈は、各離散フーリエ変換(DFT)コンポーネントを、オクターブ内の補完インターバルダイアドに関連付ける。各係数に割り当てられた音楽的解釈は、平面の原点から最も遠い音楽インターバルに対応する。各円の周りの整数は、N-12の場合、0≦n≦N-1を表し、クロマベクトルc(n)における位置に対応する。ピッチインターバル空間の理論的基礎に関するさらなる情報は、Gilberto Bernardes、Diogo Cocharro、Marcelo Caetano、Carlos Guedes、及びMatthew E.P. Davies(2016)による論文「A multi‐level tonal interval space for modelling pitch relatedness and musical consonance」、Journal of New Music Research,Volume 45,Issue 4,Pages 281-294に記載されている。
【0037】
いくつかの変形形態では、ピッチインターバル空間は、知覚的近接性を含む音楽特性を有する。すなわち、代数の客観的尺度により、ピッチインターバル空間におけるピッチインターバル空間ベクトルで表されるピッチ集合の知覚的特徴が捉えられる。具体的には、マルチレベルピッチ構成間のユークリッド距離及びコサイン距離は、ピッチ、コード、及びキーに対する人間の知覚、ならびに調性西洋音楽理論の原理と、一致する。
【0038】
いくつかの変形形態では、ピッチインターバル空間は、移調不変性という特性も有する。すなわち、ピッチインターバル空間においてピッチ構成を半音ずつ移調することは、T(k)の回転に対応する。ゆえに、いずれのピッチインターバル空間ベクトルの移調も、同じ大きさまたは中心から同じ距離のベクトルとなる。この特性は、異なる領域のインターバル関係が類似していると西洋聴衆が知覚することに一致するという意味で、12音平均律のチューニングから生じる西洋調性音楽の重要な特徴である。例えば、ハ長調のCからGまでのインターバルと、ハ#長調のC#からG#までのインターバルは、同等であると知覚される。
【0039】
いくつかの変形形態では、2つの音楽クリップ間の倍音適合性は、計算効率の高い代数的距離または類似度メトリックに従って測定される。距離または類似度メトリックは、2つの音楽クリップを表すクリップ単位ピッチインターバル空間ベクトルを使用して計算される。いくつかの変形形態では、距離または類似度メトリックは、拍単位のペアワイズのコサイン距離またはユークリッド距離の合計として計算される。ここで、コサイン距離は、コサイン類似度の補数(例えば1-コサイン類似度)を指し、角距離(例えば逆コサイン(コサイン類似度))を指すものではない。
【0040】
例えば、2つの音楽クリップに関して生成されたk個の拍単位ピッチインターバル空間ベクトルの要素でそれぞれが構成された、2つの音楽クリップに関して生成された2つのクリップ単位ピッチインターバル空間ベクトルを検討する。例えば、kは32であり得、これは1小節あたり4拍の8音楽小節に相当する。この場合、各クリップ単位ピッチインターバル空間ベクトルは、12要素の拍単位ピッチインターバル空間ベクトルが32個存在することから、384個の要素を有する。この場合、2つの音楽クリップMC
1とMC
2との倍音適合性は、次のように計算され得る。
【数4】
【0041】
上記の式では、bwV1,kは、クリップ単位ピッチインターバル空間ベクトルのうちの一方のベクトルにおけるk拍目の拍単位ピッチインターバル空間ベクトルを表し、bwV2,kは、2つのクリップ単位ピッチインターバル空間ベクトルのうちのもう一方のベクトルにおけるk拍目の拍単位ピッチインターバル空間ベクトルを表す。上記の式では、関数d()は、2つの拍単位ピッチインターバル空間ベクトルに適用されるコサイン距離またはユークリッド距離などの代数距離メトリックを表す。いくつかの変形形態では、各拍単位ピッチインターバル空間ベクトルは、代数距離メトリックの計算に使用されるときに、正規化される(例えばL2正規化される)。いくつかの変形形態では、倍音適合性-1(MC1、MC2)の値が大きいほど、音楽クリップMC1とMC2との倍音適合性は低くなる(ピッチインターバル空間における音楽クリップ間の距離が長くなる)。また、倍音適合性-1(MC1、MC2)の値が小さいほど、音楽クリップMC1とMC2との倍音適合性は高くなる(ピッチインターバル空間における音楽クリップ間の距離が短くなる)。
【0042】
いくつかの変形形態では、ユークリッド距離メトリックとコサイン距離メトリックの等価性を利用することにより、音楽クリップ間の倍音適合性を計算するのに、拍レベルの部分距離計算の合計を要することなく、単一の代数距離計算のみが必要となる。これを行うために、各拍単位ピッチインターバル空間ベクトルが、そのL2ノルムで個別に正規化される。次に、以下のように、L2正規化された拍単位ピッチインターバル空間ベクトルで構成されたクリップ単位ピッチインターバル空間ベクトルに、単一の代数距離計算が適用される。
【数5】
【0043】
ここで、cwV1は、音楽クリップMC1のクリップ単位ピッチインターバル空間ベクトルであり、cwV2は、音楽クリップMC2のクリップ単位ピッチインターバル空間ベクトルである。cwV1の各拍単位ピッチインターバル空間ベクトル、及びcwV2の各拍単位ピッチインターバル空間ベクトルは、それぞれのL2(ユークリッド)ノルムで正規化され、これにより、拍単位コサイン距離の合計が、クリップレベルでの単一ユークリッド距離計算と同等になる。このようにすることにより、近似最近傍アルゴリズムを使用した拡張可能な方法で(例えば数百万の音楽クリップに拡張して)、音楽クリップ間の倍音適合性を判定することができる。
【0044】
いくつかの変形形態では、音楽クリップのクリップ単位ピッチインターバル空間ベクトルを生成することは、音楽クリップのデジタルオーディオ信号データに対して実行される定期的で短時間のインターバル検出及びスペクトル分析を含む。インターバル検出では、音楽クリップ内の音楽拍が識別される。いくつかの変形形態では、音楽クリップ内の所定の拍数までが識別される。例えば、所定数は、1小節あたり4拍の8音楽小節を表す32であり得る。しかし、所定拍数は必須ではない。
【0045】
様々なデジタルオーディオ信号データ処理技法を使用して、音楽クリップオーディオ信号内の音楽拍が識別され得る。例えば、技法により、信号データのエネルギーまたはスペクトルにおける音符オンセットが識別され、次にオンセットのパターンが分析されて、繰り返しパターンまたは準周期的パルス列が検出され得る。例えば、拍追跡及び小節検出方法が使用され得る。
【0046】
いくつかの変形形態では、クリップ単位ピッチインターバル空間ベクトル生成のスペクトル分析により、インターバル検出により識別された拍における音楽クリップのデジタルオーディオ信号データから、クロマ表現が抽出される。いくつかの変形形態では、拍のクロマ表現は、12要素ベクトル(「クロマベクトル」)であり、各要素は、平均律半音階の12ピッチクラスのうちの1つに対応する。拍のクロマベクトルにおける要素の値は、信号データ内の拍における対応するピッチクラスの顕著性を数値で示す。クロマベクトルは、デジタルオーディオ信号データの時間周波数表現にフィルタバンクを適用することにより、計算され得る。例えば、時間周波数表現は、短時間フーリエ変換(STFT)または定Q変換(CQT)のいずれかから得ることができ、後者は、低周波数でより細かい周波数分解能を提供する。
【0047】
いくつかの変形形態では、音楽クリップに関して生成されたクリップ単位ピッチインターバル空間ベクトルを構成する拍単位ピッチインターバル空間ベクトルは、拍単位クロマベクトルから生成される。具体的には、音楽クリップの所与の拍に関する拍単位ピッチインターバルベクトルは、上記に提示されたT(k)の式のように、拍に関して生成された拍単位クロマベクトルのL1正規化離散フーリエ変換(DFT)として計算することができる。これは、拍単位クロマベクトルごとに実行されて、音楽クリップのクリップ単位ピッチインターバル空間ベクトルを構成する拍単位ピッチインターバル空間ベクトルの集合が生成され得る。
【0048】
いくつかの変形形態では、クリップ間の倍音適合性を判定するために、1分あたりの拍数(BPM)に依存しないインデックス可能特徴空間が提供される。インデックス可能特徴空間は、形状(1、N)の音楽クリップの平坦ベクトル表現を使用し、これは、BPM非依存尺度に関して、クリップの継続時間を正規化する。いくつかの変形形態では、BPM非依存尺度とは、所定の小節数及び所定の1小節あたりの拍数である。いくつかの変形形態では、平坦ベクトル表現は、音楽クリップのBPM非依存のクリップ単位ピッチインターバル空間ベクトル表現である。
【0049】
図2は、いくつかの変形形態による、音楽クリップに関して、BPM非依存のクリップ単位ピッチインターバル空間ベクトルを生成するための方法を示す。いくつかまたはすべての動作200(または本明細書で説明される他のプロセス、または変形形態、またはこれらの組み合わせ)は、実行可能命令で構成された1つ以上のコンピュータシステムの制御下で実行され、1つ以上のプロセッサで集合的に実行されるコード(例えば実行可能命令、1つ以上のコンピュータプログラム、または1つ以上のアプリケーション)として実装される。コードは、例えば、1つ以上のプロセッサにより実行可能な命令を含むコンピュータプログラムの形態で、コンピュータ可読記憶媒体に格納される。コンピュータ可読記憶媒体は、非一時的である。いくつかの実施形態では、動作200のうちの1つ以上(またはすべて)は、他の図の音楽ミキシングサービス100のバックエンド104により実行される。
【0050】
動作202にて、ループ可能な音楽クリップが取得される。例えば、ループ可能な音楽クリップは、サウンドライブラリ108から取得できる。ループ可能な音楽クリップは、所定の音楽小節数と、所定の1小節あたりの拍数とを有する。例えば、所定の小節数の範囲は、2小節~16小節であり、所定の1小節あたりの拍数の範囲は、2~8である。ループ可能な音楽クリップは、あらゆるタイプのピッチベース音楽クリップであり得る。例えば、ループ可能な音楽クリップは、ベース、ギター、キー、弦楽器、ボーカル、コード、リード、パッド、金管楽器と木管楽器、シンセ、サウンドエフェクトなど、以上のスタックレイヤーまたはサウンドコンテンツカテゴリのうちのいずれかに対応し得る。
【0051】
動作204にて、オクターブあたり12個のビンを使用して、音楽クリップの定Q変換(CQT)が計算される。この計算の出力は、短時間フーリエ変換(STFT)のような表現になり得、周波数軸の解像度は、音階の解像度に対応する(例えば結果の周波数ビンはピアノの音符としてみなされ得る)。フレームの数は、クリップの時間の長さと、STFTに似たCQT計算のウィンドウパラメータとにより、特定され得る。
【0052】
図3は、例示的音楽クリップのCQTマトリクスを、プロットで示す。マトリクスの1つの次元(x軸/列)はフレームを表し、もう1つの次元(y軸/行)は周波数を表す。この非限定的な実施例では、1200個のフレームが存在する。
【0053】
動作206にて、CQTからクロマ顕著性マップが計算される。クロマ顕著性マップは、半音階におけるピッチクラスの分布を明らかにする方法で、音楽クリップを表し得る。言い換えると、クロマ顕著性マップは、半音階における特定の音符またはインターバルの寄与または存在を明らかにする方法で、音楽クリップを表し得る。CQTは、複数のオクターブにまたがり得る。計算されたクロマ顕著性マップでは、各オクターブは単一のビンに折り畳まれ、半音階の音数である12個の行とN個の列のマトリクスが生成され得る。フレーム数Nは、CQTと同一に維持され得る。
【0054】
図4は、
図3に示される例示的音楽クリップのクロマ顕著性マップを、プロットで示す。マップの1つの次元(x軸/列)は1200フレームを表し、マップのもう1つの次元(y軸/行)は半音階の12ピッチクラスを表す。クロマ値は、マップ内で0.0~1.0の範囲に正規化される。
【0055】
いくつかの変形形態では、動作204及び206で表されるように、クロマ顕著性マップは、決定性変換に従って、CQTから計算される。しかし、クロマ顕著性マップを生成するために、他の決定性手法または非決定性手法が使用されてもよい。例えば、クロマ顕著性マップは、時間領域の音楽クリップから、またはそれらの中間表現(例えばそれらのCQT表現)から、クロマ顕著性マップを生成するようにトレーニングされた機械学習モデル(例えば人口ニューラルネットワークモデル)に基づいて、生成され得る。よって、動作204及び206は、音楽クリップのクロマ顕著性マップを生成するための単なる1つの可能な方法として、捉えられるべきである。しかし、他の方法が使用されてもよい。例えば、クロマ顕著性マップは、知覚的ヒューリスティックに基づいて計算され得る。例えば、マスキング効果により、いくつかのピッチクラスは聴覚的に知覚不可能であり得るため、たとえピッチクラスが量的に高いエネルギーを示したとしても、クロマ顕著性マップに表されるべきではないことが、ヒューリスティックにより反映され得る。CQTからクロマ顕著性マップを生成する代わりに、音楽クリップの短時間フーリエ変換(STFT)表現または他の周波数領域表現から、クロマ顕著性マップが生成されてもよい。クロマ顕著性マップはまた、音楽クリップの時間領域表現から生成されてもよい。
【0056】
いくつかの変形形態では、クロマ顕著性マップには、クロマグラム表現が含まれる。クロマグラム表現は、音楽クリップの経時的な12次元ベクトルのシーケンスを含む。各ベクトルは、クロマグラム表現のフレームに対応し、12個のクロマサブバンドに対するフレームの音楽クリップの短時間エネルギー分布をエンコードする。
【0057】
動作208にて、クロマ顕著性マップのBPM非依存クロマ表現が形成される。クロマ顕著性マップをBPM非依存にするために、N個のクロマフレームは、拍レベルの解像度に集約(例えば合計または平均化)される。例えば、8小節の長さで、4/4拍子の音楽クリップを考えると、音楽クリップの拍数は32である。さらに、この実施例において、クロマフレームの数Nが1200であると仮定する。よって、この実施例では、約37.5のクロマフレームの32個のチャンクは、拍ごとに集約され、32拍のそれぞれに対して1つの12次元クロマベクトルで構成された12行32列のBPM非依存クロマ表現マトリクスが生成される。
【0058】
図5は、
図4にプロットで示されるクロマ顕著性マップマトリクスの拍単位クロマベクトルを集約することにより生成された、BPM非依存クロマ表現マトリクスを示す。示されるように、例示的音楽クリップのクロマ顕著性マップの1200個のクロマフレームは、32拍に拍単位で集約されている。マトリクスの1次元(x軸/列)は32拍を表し、マトリクスのもう1つの次元(y軸/行)は半音階の12ピッチクラスを表す。マトリクスにおけるクロマ値は、0.0~1.0の範囲に正規化される。
【0059】
動作210にて、BPM非依存クロマ表現(例えば12行32列のクロマ表現マトリクス)から、拍単位ピッチインターバル空間ベクトルの集合の実数成分及び虚数成分が計算される。これには、実信号のフーリエ変換が含まれる。例えば、12行32列のクロマ表現マトリクスの各12要素列(例えば各クロマベクトル)は、時間領域信号としてみなされ得る。その結果、信号のフーリエ変換では、12個の実数値と12個の虚数値の複素ベクトルが生成される。各クロマベクトルは実信号であるため、フーリエ変換は対称的であり、よって係数の最初の半分のみを保持すればよく、結果、12要素の拍単位ピッチインターバル空間ベクトルの実数成分及び虚数成分を構成する6つの実数値と6つの虚数値が生成される。動作210の結果は、M個の拍単位ピッチインターバル空間ベクトルの実数成分及び虚数成分から構成された2つの6行M列のマトリクスであり得、各マトリクスのM列には、M個の拍単位ピッチインターバル空間ベクトルの実数成分または虚数成分が含まれる。Mは、拍数を表す。例えば、Mは、2、4、8、16、32、または64拍、あるいは目下の特定の実施態様の要件に適したその他の拍数であり得る。
【0060】
図6は、
図5のBPM非依存クロマ表現マトリクスから生成された32個の拍単位ピッチインターバル空間ベクトルの実数成分及び虚数成分を含む2つのマトリクスを、プロットで示す。マトリクスの1次元(x軸/列)は32拍を表し、もう1つの次元(y軸/行)は32個の拍単位ピッチインターバル空間ベクトルを構成する6つの実数値及び6つの虚数値を表す。
【0061】
また、動作210にて、各拍単位ピッチインターバル空間ベクトルの実数成分及び虚数成分は連結され、M個の拍単位ピッチインターバル空間ベクトルを含む単一の12行M列のマトリクスが形成される。
【0062】
図7は、
図6の2つのマトリクスの実数成分及び虚数成分を連結して、32個の拍単位ピッチインターバル空間ベクトルを含む単一のマトリクスを生成した結果を示し、マトリクスの各列には、例示的音楽クリップのそれぞれの拍に関する拍単位ピッチインターバル空間ベクトルが含まれる。
【0063】
動作212にて、M個の拍単位ピッチインターバル空間ベクトルのマトリクスは、形状(1、(12*M))のクリップ単位ピッチインターバル空間ベクトルに平坦化される。例えば、Mが32拍である場合では、クリップ単位ピッチインターバル空間ベクトルの次元は(1、384)になる。いくつかの変形形態では、各拍単位ピッチインターバル空間ベクトルの実数部及び虚数部を連結して、クリップ単位ピッチインターバル空間ベクトルを生成することにより、マトリクスは列方向に平坦化される。
【0064】
いくつかの変形形態では、クリップ単位ピッチインターバル空間ベクトルを構成する各拍単位ピッチインターバル空間ベクトルは、連結してクリップ単位ピッチインターバル空間ベクトルを形成する前に、そのL2ノルム(2ノルムまたはユークリッドノルムとしても知られる)により正規化される。この正規化は、M個の拍単位ピッチインターバル空間ベクトルのマトリクスによりもたらされる2次元の特徴空間表現が、インデックス(例えばインデックスは近似最近傍検索をサポートする)で容易にインデックス化できないという、倍音適合性のある音楽クリップを拡張可能な方法で低遅延で識別する際の問題を、単位ベクトルのユークリッド距離と単位ベクトルのコサイン距離の等価性(比例性)を利用して解決するために、実行され得る。
【0065】
図8は、
図7のマトリクスを、例示的音楽クリップのクリップ単位ピッチインターバル空間ベクトルに平坦化したものを、コンピュータのグラフィカルユーザインターフェースにおける色分けされたプロットで示す。ここで、マトリクスは、32個の拍単位ピッチインターバル空間ベクトルのそれぞれに12要素を含む、384要素を有するクリップ単位ピッチインターバル空間ベクトルに平坦化される。
図9は、384要素のクリップ単位ピッチインターバル空間ベクトルの値を、波形プロットで示す。
【0066】
音楽クリップの特徴空間は、M個の拍単位ピッチインターバル空間ベクトルを含む12行M列のマトリクスにより表される。動作212にてマトリクスは平坦化され、これにより、特徴空間はインデックス可能となり、音楽クリップは拡張可能な方法で検索可能となる。動作212のように、M個の拍単位ピッチインターバル空間ベクトルの2次元マトリクスを1次元のクリップ単位ピッチインターバル空間ベクトルに平坦化することにより、近似最近傍検索アルゴリズムを使用して、倍音適合性のある音楽クリップを迅速に識別することが可能となり、通常は1次元ベクトルのみをサポートする近似最近傍検索を、数百万のインデックス化された音楽クリップに拡張することが可能となる。上記で論じられた倍音適合性-2(MC1、MC2)の式は、2つの音楽クリップ間の倍音適合性を、それぞれのクリップ単位ピッチインターバル空間ベクトルを使用して効率的に計算できる方法を表す。
【0067】
動作214にて、音楽クリップのキー非依存サポートが提供される。キーに依存しないため、異なる音楽キーのクリップ間の倍音適合性を判定することが可能となる。クロマ表現に戻ると、1つの列の1つの要素を時間領域信号のように円形にシフトすることは、元の信号を1半音だけ移調することに等しい。時間領域での時間シフトが周波数領域での位相回転と等しいというこの特性により、直接、ピッチインターバル空間で回転を使用して音楽クリップの移調を生成することが可能となる。例えば、音楽クリップは、半音階の12個のキーにわたり倍音適合性に関して合致させることができるように、インデックス化され得る。これを行うために、動作212で生成された元のクリップ単位ピッチインターバル空間ベクトルは、11通りに回転され得、これにより、元のクリップ単位ピッチインターバル空間ベクトルを含む合計12個のクリップ単位ピッチインターバル空間ベクトルが生成される。次に、音楽クリップは、これらのベクトルのそれぞれによりインデックス106でインデックス化されることで、異なるキーにわたり合致することが可能となり得る。倍音適合性に関して1つのキーの音楽クリップが異なるのキーの別の音楽クリップと合致する場合、次に、両方のクリップが同じキーになるように、デジタルオーディオ信号データ処理技法を使用して、音楽クリップのうちの1つがピッチシフトされ得る。いくつかの変形形態では、元のピッチシフトされていない音楽クリップの音楽キーの上下いくつかの半音(例えば3半音)のみ、サポートが提供される。これにより、インデックス106でクリップがインデックス化されるクリップ単位ピッチインターバル空間ベクトルの数が削減され、よってインデックス106のサイズが削減される。さらに、これにより、元の音楽クリップのピッチシフトが大きすぎること(例えば半音階で3半音より多く上下すること)から生じる知覚品質の顕著な劣化を防ぎ得る。
【0068】
動作216にて、生成されたクリップ単位ピッチインターバル空間ベクトルにより、音楽クリップはインデックス化される。いくつかの変形形態では、近似最近傍検索をサポートする近似最近傍ベースのインデックス(例えば量子化ベースのインデックス、グラフベースのインデックス、またはツリーベースのインデックス)を使用して、生成されたクリップ単位ピッチインターバル空間ベクトルによりインデックス106で音楽クリップがインデックス化される。例えば、グラフベースの手法または空間分割近似最近傍手法が使用され得る。近似最近傍手法により、パフォーマンス(例えばピッチインターバル空間において所与の音楽クリップに距離が近い1つ以上の音楽クリップの集合を迅速に識別すること)と、拡張性(例えば多数の音楽クリップをインデックス化すること)と、精度(例えばクエリの再現度及び正確さ)との間で、許容範囲のトレードオフが提供され得る。
【0069】
いくつかの変形形態では、バックエンド104により「ソース」のクリップ単位ピッチインターバル空間ベクトルを使用してインデックス106が照会され、クリップ単位ピッチインターバル空間ベクトルによりインデックス化されたライブラリ108内の1つ以上の音楽クリップの「回答」集合が識別され、これらの音楽クリップはそれぞれ、ピッチインターバル空間において、コサイン距離またはユークリッド距離などの代数距離または類似尺度による距離または類似度が、ソースのクリップ単位ピッチインターバル空間ベクトルに近い。近似最近傍検索が使用される場合、検索の近似性により、回答集合は、最も近いインデックス化音楽クリップではない場合がある(ただしそうである場合もある)。回答集合に含まれる音楽クリップの数は、所定の数(例えばピッチインターバル空間における所定数の最も近い音楽クリップ)であり得る。あるいは、回答集合には、ソース音楽クリップの所定閾値距離内または所定閾値類似度内である音楽クリップすべてが含まれ得る。
【0070】
いくつかの変形形態では、クエリはまた、回答集合に含まれるインデックス化音楽クリップの集合を制限する1つ以上のクエリ制約の集合を指定する。これらの制約は、回答集合を(例えば近似最近傍手法を使用して)収集するときに適用されてもよく、または検索から取得された初期回答集合に適用する検索後ステップとして(例えばソースのクリップ単位ピッチインターバル空間ベクトルを検索キーとして使用して近似最近傍検索を使用して初期回答集合が特定された後に)適用されてもよい。複数の制約が連結して適用されてもよい。すなわち、複数の制約が指定される場合には、回答集合に含まれる音楽クリップは、すべての制約を満たす必要がある。しかし、制約は、分離して適用されてもよく、またはブール論理(例えばAND、OR、NOT、または優先順位演算子を使用した制約の式)を使用して適用されてもよい。
【0071】
すでに述べた1つの制約は、サウンドコンテンツカテゴリである。例えば、回答集合は、1つ以上の指定サウンドコンテンツカテゴリの集合のうちの少なくとも1つに属する音楽クリップに制限され得る。例えば、指定サウンドコンテンツカテゴリには、ドラム、ベース、ギター、キー、弦楽器、ボーカル、コード、リード、パッド、金管楽器と木管楽器、シンセ、サウンドエフェクトなど、これらのすべてのサウンドコンテンツカテゴリ、これらのカテゴリの部分集合、またはこれらの上位集合が含まれ得る。
【0072】
もう1つの制約は、1分あたりの拍数(BPM)であり得る。この制約は、生成されたクリップ単位ピッチインターバル空間ベクトルのBPM非依存性に影響を及ぼさない。しかし、音楽クリップのピッチを変更しない時間スケール変更アルゴリズム(例えば波形類似度オーバーラップ加算(WSOLA)時間スケール変更アルゴリズム)を使用して、ミックス内の音楽クリップを時間的に引き伸ばした結果、ミックスの知覚品質の顕著な劣化が生じることを回避するために、ミキシングプロセスの一環として、特定のBPMを有する、または特定のBPM範囲内である音楽クリップに回答集合を限定することが、ユーザにより望まれる場合がある。いくつかの変形形態では、ライブラリ108内の音楽クリップは、インデックス106により非重複BPMバケットの集合に論理的に分類され、クエリは、適合音楽クリップの検索を制限するバケットのうちの1つを指定する。例えば、低BPM、中BPM、及び高BPMに対応する3つのBPMバケットが存在し得る。例えば、低BPMバケットには、BPMが100BPM未満であるライブラリ108内の音楽クリップが含まれ得、中BPMバケットには、BPMが100BPM~150BPMであるライブラリ108内の音楽クリップが含まれ得、高BPMバケットには、BPMが150BPMを超えるライブラリ108内の音楽クリップが含まれ得る。
【0073】
もう1つの可能な制約は、音楽のキーである。この制約は、生成されたクリップ単位ピッチインターバル空間ベクトルのキー非依存性に影響を及ぼさない。しかし、BPMの場合と同様に、ミックス内の音楽クリップをピッチシフトした結果、ミックスの知覚品質の顕著な劣化が生じることを回避するために、ミキシングプロセスの一環として、特定のキーまたは特定のキー集合の音楽クリップに回答集合を限定することが、ユーザにより望まれる場合がある。いくつかの変形形態では、クエリは、適合音楽クリップの回答集合を制限する、半音階における12個のピッチクラスのうちの1つ以上のピッチクラスの集合を指定する。
【0074】
もう1つの可能な制約は、複数の小節にわたるコード進行または音階度数進行である。例えば、ミキシングプロセスの一環として、指定コード進行(例えば音名及び対応小節のシーケンスとして指定)、または指定音階度数進行(例えば音階度数及び対応小節のシーケンスとして指定)に従う音楽クリップに、回答集合を限定することが、ユーザにより望まれる場合がある。例えば、4音楽小節にわたるコード進行は、第1の小節がBm、第2の小節がD、第3の小節がEm、第4の小節がGに続いてAと指定され得る。指定コード進行の代わりに、音階度数進行が指定されてもよい。例えば、4音楽小節にわたる音階度数音進行は、第1の音楽小節が第1度(主音)、第2の音楽小節が第3度(中音)、第3の音楽小節が第4度(下属音)、第4の音楽小節が第6度(下中音)に続いて第7度(導音)となり得る。ライブラリ108内の音楽クリップのコード進行及び音階度数進行は、デジタルオーディオ信号データ処理技法を使用して識別され得る。いくつかの変形形態では、音楽クリップがデジタルオーディオ信号データ処理技法に従った指定コード進行または指定音階度数進行を含む場合、音楽クリップは、コード進行または音階度数進行を満たす。
【0075】
ここで
図1のステップ2に戻ると、サービス100は、ライブラリ108から選択された1つ以上の音楽クリップの集合が事前に入力された、選択スタックテンプレートを返す。サービス100がスタックテンプレートに含めるように選択する1つ以上の音楽クリップの集合は、選択スタックテンプレートのジャンル/スタイルの制約を受け得る。例えば、選択スタックテンプレートが「ダンス」のジャンル/スタイルに関する場合には、サービス100がスタックテンプレートに含めるように選択する集合の音楽クリップはすべて、「ダンス」サウンドコンテンツカテゴリに属し得る、あるいはサービス100により「ダンス」音楽クリップとしてインデックス化、タグ付け、またはカテゴリ化され得る。
【0076】
いくつかの変形形態では、音楽クリップ間の倍音適合性を判定するためには、ライブラリ108内のドラム音楽クリップまたは他のピッチなし音楽クリップは、候補として考慮されない。これは、叩く、振る、またはこすることにより演奏されるドラム及び他の打楽器(例えばスネアドラム、バスドラム、シンバル、タンバリン、トライアングルなど)が、通常、弱い基本周波数を生成するピッチなし打楽器と見なされるためである。しかし、ティンパニ及びピッチのあるタムのようないくつかの打楽器は、ピッチ特質を有し得る。よって、ライブラリ108内のピッチ付き音楽クリップとピッチなし音楽クリップとの間には、明確な線引きが存在し得ない。ライブラリ108内の音楽クリップにデジタルオーディオ信号データ処理技法を適用して、どの音楽クリップが十分にピッチを有するか(例えば検出可能な基本周波数を有するか)、どの音楽クリップがピッチを有さないか(例えば弱い基本周波数を有するか)が、判定され得る。ライブラリ108内の音楽クリップのピッチ付き及びピッチなしの判定は、自動判定の代替として、または自動判定と組み合わせて(例えば最初の自動判定を確認することで)、ユーザにより行われてもよい。
【0077】
いくつかの変形形態では、テンプレートを選択してスタック作成プロセスを開始する代わりに、ユーザは、単一の「シード」音楽クリップを選択してスタック作成プロセスを開始し得る。例えば、ユーザは、例えばライブラリ108をブラウジングまたは検索することにより、ライブラリ108からシード音楽クリップを選択し得る。あるいは、ユーザは、音楽クリップを記録し得る。例えば、ユーザは、電子デバイス120を使用して、2音楽小節、4音楽小節、8音楽小節、またはそれ以上の音楽小節を記録し得る。例えば、ユーザは、8小節のメロディを歌い、または楽器を8小節演奏し得、その内容は、電子デバイス120のマイクロフォンを介して、または電子デバイス120に動作可能に接続されたマイクロフォンを介して、電子デバイス120で音楽クリップとして取り込まれる。いくつかの変形形態では、記録された音楽クリップのクリップ単位ピッチインターバル空間ベクトルは、本明細書で開示される技法を使用して、電子デバイス120で計算される。あるいは、記録された音楽クリップは、サービス100にアップロードされ、サービス100によりクリップ単位ピッチインターバル空間ベクトルが計算され得る。次に、計算されたクリップ単位ピッチインターバル空間ベクトルは、デバイス120で使用するために、サービス100によりデバイス120に返され得る。
【0078】
デバイス120で記録された音楽クリップは、作成プロセス中の既存のスタックに追加することもできる。例えば、ユーザは、1つ以上の音楽クリップのスタックテンプレートを選択することで、スタック作成プロセスを開始し得る。ユーザは、記録した音楽クリップを現行のスタックに追加することができる。例えば、スタックテンプレートは、キー音楽クリップ、ドラム音楽クリップ、及びギター音楽クリップでスタックを開始し得る。次に、ユーザは、デバイス120を使用して、ユーザが現行のスタックと調和させたボーカルメロディを記録し得る。次に、ユーザは記録した音楽クリップを現行のスタックに追加して、キー音楽クリップ、ドラム音楽クリップ、ギター音楽クリップ、及び記録したボーカル音楽クリップを含む新たなスタックを形成し得る。記録したボーカル音楽クリップは、ピッチインターバル空間における記録したボーカルトラックとスタック内の他のピッチベース音楽クリップとの類似度または距離に関係なく、ユーザによりスタック内に含められ得ることに、留意されたい。しかし、スタックに追加するためにライブラリ108から選択される後続の音楽クリップ、またはスタック内の音楽クリップを置き換える後続の音楽クリップは、ピッチインターバル空間における類似度または距離による、記録したボーカル音楽クリップと音楽クリップとの倍音適合性に基づいて、選択され得る。例えば、記録したボーカル音楽クリップをスタックに追加した後、ユーザは、スタックテンプレートにより提供されるキー音楽クリップを、倍音適合性のある別のキー音楽クリップに置き換えることを選択し得る。新たなキー音楽クリップの選択は、ギター音楽クリップ及び記録したボーカル音楽クリップを含むスタック内の残りのピッチベース音楽クリップと、新たなキー音楽クリップとの倍音適合性に基づき得る。
【0079】
ユーザが記録した音楽クリップでスタックを開始すること、またはユーザが記録した音楽クリップをスタックに追加することと同様に、レコーディングアーティストによりライセンス化された音楽クリップでスタックを開始してもよく、またはレコーディングアーティストによりライセンス化された音楽クリップは既存のスタックに追加され得る。例えば、音楽ミキシングコンテストにおいて、コンテスト参加者は、本明細書で開示されるスタックアプリケーションを使用し、最も良いサウンドであると判断されたミックスに基づいて勝者が選ばれ、ミックスには、コンテストのスポンサーまたはサポートであるレコーディングアーティストにより提供された/ライセンス化された音楽クリップが少なくとも1つ含まれる必要がある状況を、検討する。この実施例では、各コンテスト参加者は、ライセンス化された音楽クリップ(例えばレコーディングアーティストが歌ったボーカルメロディ)をシード音楽クリップとして含むスタックを使用して、コンテストを開始し得る。
【0080】
よって、スタック作成プロセスは、テンプレートを選択すること以外の方法で、例えばシード音楽クリップを選択することまたは記録することなどにより、開始することができる。
【0081】
ステップ3にて、電子デバイス120から適合音楽クリップ要求が受信される。例えば、ステップ2で返されたスタックテンプレートに1つの「ボーカル」音楽クリップが含まれる、あるいは記録、選択、またはアップロードされたシード音楽クリップが「ボーカル」音楽クリップであると、仮定する。次に、ステップ3で、適合「キー」音楽クリップ要求が受信される。この適合「キー」音楽クリップ要求を受信すると、サービス100は、インデックス106へのクエリに「ボーカル」音楽クリップのクリップ単位ピッチインターバル空間ベクトルを使用して、適合する(例えば最も適合する)「キー」音楽クリップを特定し得る。例えば、近似最近傍検索に基づいて、クエリに「ボーカル」音楽クリップのクリップ単位ピッチインターバル空間ベクトルを使用して、特定が行われ得る。ステップ4にて、ステップ3の要求への応答として、適合音楽クリップが電子デバイス120に返される。例えば、最も適合する「キー」音楽クリップが、電子デバイス120に返され、電子デバイス120において「ボーカル」音楽クリップとともに現行のスタック内に含められる。
【0082】
ステップ3及びステップ4は、ユーザ110が最終スタックを決定するまで、反復的に繰り返され得る。例えば、適合「キー」音楽クリップ要求の後、ステップ3にて、別の適合音楽クリップ要求が電子デバイス120から受信され得る。この要求は、適合「ボーカル」音楽クリップ及び適合「キー」音楽クリップで構成された現行の倍音適合部分ミックス(「部分ミックス」)と適合する「リード」音楽クリップを求め得る。現行の部分ミックスは複数の音楽クリップを含むため、構成要素である音楽クリップの個々のクリップ単位ピッチインターバル空間ベクトルは、線形結合され(例えば単純な線形加算により)、現行の部分ミックスを表す「部分ミックス単位」ピッチインターバル空間ベクトルが形成され得る。いくつかの変形形態では、構成要素のクリップ単位ピッチインターバル空間ベクトルの線形結合に基づいて形成された最初の部分ミックス単位ピッチインターバル空間ベクトルは、L2正規化により拍レベルで正規化され、最終的な部分ミックス単位ピッチインターバル空間ベクトルが形成される。次に、サービス100は、インデックス106へのクエリに部分ミックス単位ピッチインターバル空間ベクトルを使用して、適合「リード」音楽クリップを特定し得る。例えば、近似最近傍検索に基づいて、クエリに適合「ボーカル」音楽クリップ及び適合「キー」音楽クリップの部分ミックス単位ピッチインターバル空間ベクトルを使用して、特定が行われ得る。ステップ4にて、ステップ3の要求への応答として、適合音楽クリップが電子デバイス120に返される。例えば、「ボーカル」音楽クリップ及び「キー」音楽クリップで構成された現行の部分ミックスに最も適合する「リード」音楽クリップが電子デバイス120に返され、適合「ボーカル」音楽クリップ、適合「キー」音楽クリップ、及び適合「リード」音楽クリップで構成された新たな部分ミックスが形成され得る。
【0083】
次に、ユーザ110は、現行のスタックにドラム音楽クリップを追加することを望み得る。したがって、ステップ3にて、別の適合音楽クリップ要求が電子デバイス120から受信され得る。この要求は、「ボーカル」音楽クリップ、「キー」音楽クリップ、及び「リード」音楽クリップで構成された現行のスタックと適合する「ドラム」音楽クリップを求め得る。しかし、「ドラム」音楽クリップはピッチなし音楽クリップとみなされ得るため、サービス100により、本明細書で開示される倍音適合性手法以外の手法を使用して、適合「ドラム」音楽クリップは選択され得る。例えば、サービス100は、ジャンル/スタイル制約(例えばステップ1で選択されたスタックテンプレートのジャンル/スタイル制約)または他のユーザ指定制約もしくはユーザ設定制約(例えばBPM)に従って、ライブラリ108から適合「ドラム」音楽クリップをランダムに選択し得る。制約に従ってランダムにピッチなし音楽クリップが選択される場合もあるが、制約に従って別様にピッチなし音楽クリップが選択される場合もある。例えば、制約に従って、ピッチなし音楽クリップ内の検出されたオンセットパターンと、現行のスタックを構成する音楽クリップとの適合性に基づいて、適合するピッチなし音楽クリップが選択され得る。
【0084】
次に、ユーザ110は、現行のスタックに「ドラム」音楽クリップを追加した後、適合「ベース」音楽クリップを追加することを望み得る。したがって、ステップ3にて、さらに別の適合音楽クリップ要求がサービス100により受信され得る。この要求は、適合「ボーカル」音楽クリップ、適合「キー」音楽クリップ、及び適合「リード」音楽クリップで構成された現行の部分ミックスと適合する適合「ベース」音楽クリップを求め得る(倍音適合性を判定するためには、「ドラム」音楽クリップ及び他のピッチなし音楽クリップは部分ミックスから除外され得ることに留意されたい)。サービス100は、現行の部分ミックスを構成する適合「ボーカル」音楽クリップ、適合「キー」音楽クリップ、及び適合「リード」音楽クリップのクリップ単位ピッチインターバル空間ベクトルを線形結合することにより、部分ミックス単位ピッチインターバル空間ベクトルを形成し、続いて、部分ミックス単位ピッチインターバル空間ベクトルを拍レベルでL2正規化し得る。次に、サービス100は、インデックス106へのクエリに部分ミックス単位ピッチインターバル空間ベクトルを使用して、適合「ベース」音楽クリップを特定し得る。例えば、近似最近傍検索に基づいて、クエリに部分ミックス単位ピッチインターバル空間ベクトルを使用して、特定が行われ得る。ステップ4にて、ステップ3の要求への応答として、適合音楽クリップが電子デバイス120に返される。例えば、適合「ボーカル」音楽クリップ、適合「キー」音楽クリップ、及び適合「リード」音楽クリップで構成された現行の部分ミックスに最も適合する「ベース」音楽クリップが電子デバイス120に返され、適合「ボーカル」音楽クリップ、適合「キー」音楽クリップ、適合「リード」音楽クリップ、及び適合「ベース」音楽クリップで構成された新たな部分ミックスと、新たな部分音楽ミックス及び「ドラム」音楽クリップで構成された新たな現行のスタックとが形成され得る。
【0085】
ステップ5にて、電子デバイス120から、現行のスタックを完成ミックスとして共有する要求が、サービス100により受信され得る。例えば、現行のスタックは、電子デバイス120またはサービス100で音楽クリップとしてレンダリングされてライブラリ108に含められ、電子デバイス120でデジタルオーディオ信号データソースとして格納され得る、またはオンラインソーシャルメディアプラットフォーム(例えば中国、北京のBYTEDANCEが所有するTIKTOKソーシャルネットワーキングサービス)にアップロードあるいは共有され得る、電子メール(eメール)メッセージもしくはテキスト(SMS)メッセージの添付ファイルとして送信され得る、クラウドベースデータストレージサービスもしくは集中ホスト型ネットワークファイルシステムにアップロードされ得る、またはさらなる処理のためにデジタルオーディオワークステーション(DAW)ソフトウェアにインポートできるデータフォーマットでエクスポートされ得る。
【0086】
図10、
図11、
図12、
図13、
図14、
図15、
図16、
図17、
図18、
図19、
図20、
図21、
図22は、いくつかの変形形態による、スタックベース音楽ミキシングアプリケーションのグラフィカルユーザインターフェースの様々な状態を示す。本明細書で説明されるピッチベース音楽クリップ間の倍音適合性を判定するための技法は、スタックベース音楽ミキシングアプリケーションをサポートするために使用され得る。下記では、ユーザ電子デバイスが特定の動作を実行し、音楽ミキシングサービス100が他の動作を実行すると説明されるが、実行される動作の配分が厳密に説明どおりである必要はないことに、留意されたい。例えば、サービス100により実行されると説明されるいくつかの動作またはすべての動作は、代わりにユーザ電子デバイスにより実行されてもよい。さらに、スタックベース音楽ミキシングアプリケーションは、モバイルコンピューティングデバイスのモバイルアプリケーションとして説明されるが、スタックベース音楽ミキシングアプリケーションは、他の形態をとり、他のタイプのコンピューティングデバイス上で実行されてもよい。例えば、スタックベース音楽ミキシングアプリケーションは、ワークステーションコンピュータまたはラップトップコンピュータで実行されるデジタルオーディオワークステーションソフトウェアに含まれ得る。
【0087】
さらに、スタックベース音楽ミキシングアプリケーションの変形形態も可能である。例えば、一変形形態では、ユーザは、ユーザの電子デバイスで実行されているデジタルオーディオワークステーションアプリケーションで、1つ以上の8小節音楽クリップの集合を選択し得る。デジタルオーディオワークステーションアプリケーションのプラグインまたは拡張機能は、ネットワーク130を介してサービス100とインターフェースして、選択された音楽クリップ集合と倍音適合性のあるライブラリ108内の音楽クリップまたは音楽クリップ集合を取得し得る。この事例では、選択された音楽クリップ集合は、ライブラリ108内に存在するもの、またはインデックス106によりインデックス化されたものであってもよく、またはそうでなくてもよい。デジタルオーディオワークステーションソフトウェアまたはこれに対するプラグインもしくは拡張機能は、本明細書で開示される技法を使用して、選択された音楽クリップ集合のクリップ単位ピッチインターバル空間ベクトルを生成し、生成したクリップ単位ピッチインターバル空間ベクトルをネットワーク130経由でサービス100に送信し得、サービス100は、クリップ単位ピッチインターバル空間ベクトルを使用して、本明細書で開示される技法を用いて倍音適合性のある音楽クリップを検索する。
【0088】
図10は、グラフィカルユーザインターフェース(GUI)1002を有する個人用電子デバイス1000(例えば
図1のデバイス120)を示す。GUI1002は、テキストバナー1004で示されたスタックテンプレートを選択するためのオプション1006を提示する。オプション1006の集合は、異なる音楽のジャンル/スタイルに対応する。ユーザは、これらのうちの1つを選択して、ミックス作成プロセスを開始し得る。前述のように、スタックベースミキシングアプリケーションは、スタックテンプレートを選択する以外に、ミックス作成プロセスを開始する他の方法もサポートし得る。例えば、GUI1002は、ライブラリ108からシード音楽クリップを選択するため(例えばライブラリ108を検索またはブラウジングすることにより)、シード音楽クリップをアップロードするため、またはデバイス1000のマイク機能を介してシード音楽クリップを記録するための、グラフィカルユーザインターフェースコントロールを提供し得る。
【0089】
図11は、グラフィカルユーザインターフェース(GUI)1002を有する個人用電子デバイス1000を示す。ここで、ユーザは「アコースティック」スタックテンプレートオプション1108を選択した(例えばデバイス1000のタッチ感知面に対するタッチジェスチャにより)。
【0090】
図12は、
図11に示されるようにユーザが「アコースティック」スタックテンプレートオプション1108を選択したことに応答して表示されるグラフィカルユーザインターフェース(GUI)1202を有する個人用電子デバイス1000を示す。GUI1202は、作成しているスタックの初期名を提示するテキストバナー1204を含む。この実施例では、初期名は「マイスタック」であるが、これはユーザが変更してもよい。例えば、テキストバナー1204を選択すると(例えばタッチジェスチャまたは他のユーザ入力により)、GUI1202においてグラフィカルユーザインターフェースコントロール(例えばテキスト入力ボックスコントロール)がユーザに提供され、初期名をユーザが所望するものに変更してもよい。またGUI1202では、GUI要素1206、1208、1210、1212、及び1214が、現行のスタック内の音楽クリップを表す。音楽クリップを表す各GUI要素1206、1208、1210、1212、及び1214は、音楽クリップのタイプ/ジャンル/スタイル(例えば「ドラム」、「パッド」、「ベース」、「リード」、「ボーカル」など)、及び音楽クリップの名称(例えば「SC VIOLA 60 COMBOFGD」)を示す。この実施例では、本明細書で開示される技法に従って、示される音楽クリップは、選択されたスタックテンプレートに含めるように、サービス100により自動的に選択される。その結果、GUI要素1208、1210、1212、及び1214に対応する「パッド」、「ベース」、「リード」、及び「ボーカル」の音楽クリップは、GUI要素1206により表される「ドラム」音楽クリップに合う倍音適合性のある部分ミックスを形成する。GUI1202はまた、現行のスタックに新たな適合音楽クリップを追加することを要求するためのGUIコントロール1216も含む。GUIコントロール1218は、現在選択されているスタックテンプレートに投入する新たな音楽クリップ集合を選択するためのものである。コントロール1218を選択すると、GUI要素1206、1208、1210、1212、及び1214に対応する現行の音楽クリップ集合が破棄され、新たな適合音楽クリップ集合が自動的に選択され、選択されたスタックテンプレートに投入される。GUIコントロール1220は、デバイス1000のスピーカ1224を通して、現行のスタックをミックスとしてオーディオ再生するかどうかを制御する。音符1226は、デバイス1000のスピーカ1224から出力される現行のスタックのサウンドを表す。GUIコントロール1222は、現行のスタックを共有するためのものである。いくつかの変形形態では、GUIコントロール1220が現行のスタックを再生するように設定された場合には、構成要素である音楽クリップのそれぞれを含む現行のスタックがループ再生されるため、ユーザは、現行のスタックがミックスとしてどのようなサウンドになるかを聞くことができる。構成要素の音楽クリップは、他の構成要素の音楽クリップと合わせるまたは同期させるために、必要に応じてデバイス1000またはサービス100により、タイムシフトまたはピッチシフトされ得る。GUI要素1206、1208、1210、1212、及び1214のそれぞれは、各自の音楽クリップ再生が現在どこにあるかを示す再生進行インジケータ(例えば1228)を含み得る。例えば、再生インジケータ1228は、現行のスタックがループ再生されると左から右に移動し得、GUI要素1206により表される音楽クリップの一再生が完了すると、音楽クリップの再生が音楽クリップの先頭から再び開始し得、この場合、インジケータ1228は、GUI要素1206の左端から再び開始し、再生が進むにつれGUI要素1206の右端に向かって移動する(動画化される)。
図13及び後続の図では、明確な実施例を提供するために、及び開示される技法の他の態様を不必要に曖昧にすることを避けるために、再生インジケータは示されない。よって、他の図から再生インジケータが省略されていることは、再生インジケータが、これらの他の図で示される技法と互換性がないことを意味するわけではない。
【0091】
図13は、GUI1202を有する個人用電子デバイス1000を示す。ここでユーザは、現行のスタック内で置き換える音楽クリップの選択1330を行っている。選択1330は、例えばデバイス1000のタッチ感知面に対する右スワイプのタッチジェスチャなど、適切なユーザ入力により行われ得る。この実施例では、ユーザは選択1330を行うことで、GUI要素1210により表される音楽クリップを適合「ベース」音楽クリップで置き換える。
【0092】
図14は、ユーザが現行のスタックの現行の「ベース」音楽クリップを置き換える選択1330を行ったことに応答したGUI1402を有する個人用電子デバイス1000を示す。選択1330の結果、「FH2 FILTER LOOP PONG BASS」音楽クリップは、GUI要素1208、1212、及び1214により表される音楽クリップで構成された部分ミックスと倍音適合性があると判定された「FE2 DRM120 BACKBEAT」音楽クリップで置き換えられた(ピッチなし音楽クリップは倍音適合性判定には含まれないことを思い出されたい)。よって、GUI要素1208、1410、1212、及び1214により表される音楽クリップで構成された新たな部分ミックスが形成される。また、選択1330により、スピーカ1224が出力するサウンド1426で示されるように、新たな現行のスタックがループミックスで再生される。このようにして、ユーザは、新たな「ベース」音楽クリップを有するミックスとして、新たな現行のスタックがどのようなサウンドになるかを、聴覚的に知覚することができる。
【0093】
図15は、
図14に示されるGUI1402を有する個人用電子デバイス1000を示す。ここでユーザは、現行のスタック内で削除する音楽クリップの選択1532を行っている。選択1532は、例えばデバイス1000のタッチ感知面に対するスワイプのタッチジェスチャなど、適切なユーザ入力により行われ得る。この実施例では、ユーザは選択1532を行うことで、GUI要素1208により表される「パッド」音楽クリップを削除する。
【0094】
図16は、ユーザが現行のスタックから「パッド」音楽クリップを削除する選択1532を行ったことに応答したGUI1602を有する個人用電子デバイス1000を示す。選択1532の結果、「パッド」音楽クリップは、現行のスタックの一部ではなくなった。スピーカ1224が出力するサウンド1626は、削除された「パッド」音楽クリップが存在しない現行のスタックの再生を反映するため、ユーザは、削除された「パッド」音楽クリップが存在しないミックスとして、新たな現行のスタックがどのようなサウンドになるかを、聴覚的に知覚することができる。
【0095】
図17は、
図16に示されるGUI1602を有する個人用電子デバイス1000を示す。ここでユーザは、現行のスタックに新たな音楽クリップを追加する選択1734を行っている。選択1734は、適切なユーザ入力をGUIコントロール1216に送ることにより行われる。例えば、選択1734は、デバイス1000のタッチ感知面に対する押下タッチジェスチャなどにより行われ得る。
【0096】
図18は、ユーザが現行のスタックに新たなレイヤーを追加する選択1734を行ったことに応答したGUI1802を有する個人用電子デバイス1000を示す。現行のスタックは、サウンド1626で示されるようにループ再生を続ける。GUI1802は、追加する新たなクリップのレイヤータイプを選択することをユーザに促すテキストバナー1804を含む。GUI1802は、選択可能なオプションとして、レイヤータイプの集合1836を提示する。GUI1802はまた、ユーザが現在の操作を取り消して、GUI1602に対応するGUI状態に戻ることを可能にするキャンセルオプション1838も提供する。前述のように、スタックベースミキシングアプリケーションは、レイヤータイプを選択する以外に、現行のスタックに音楽クリップを追加する他の方法もサポートし得る。例えば、GUI1802は、ライブラリ108から音楽クリップを選択して(例えばライブラリ108を検索またはブラウジングすることにより)現行のスタックに追加するため、音楽クリップをサービス100にアップロードして現行のスタックに追加するため、またはデバイス1000のマイク機能を介して音楽クリップを記録して現行のスタックに追加するための、グラフィカルユーザインターフェースコントロールを提供し得る。これらの事例では、選択された、アップロードされた、または記録された音楽クリップは、追加の音楽クリップと現行のスタックの音楽クリップとの倍音適合性に関係なく、現行のスタックに追加され得る。しかし、現行のスタックに含める次のトラックを選択するときに、追加された音楽クリップの倍音適合性が検討され得る。
【0097】
図19は、
図18に示されるGUI1802を有する個人用電子デバイス1000を示す。ここでユーザは、現行のスタックに追加する新たな音楽クリップとして「キー」レイヤータイプの選択1940を行っている。現行のスタックは、サウンド1626で示されるように、ミックスループ再生を続ける。
【0098】
図20は、「キー」レイヤータイプの選択1940に応答したGUI2002を有する個人用電子デバイス1000を示す。その結果、GUI要素2042により表されるように、現行のスタックに新しい「キー」音楽クリップが追加された。新たな「キー」音楽クリップは、GUI要素1410により表される「ベース」音楽クリップ、GUI要素1212により表される「リード」音楽クリップ、及びGUI要素1214により表される「ボーカル」音楽クリップで構成された現行の部分ミックスと倍音適合性があると判定され、「ベース」音楽クリップ、「リード」音楽クリップ、「ボーカル」音楽クリップ、及び「キー」音楽クリップで構成された新たな部分ミックスと、新たな部分ミックス及び「ドラム」音楽クリップで構成された新たな現行のスタックとが形成される。ここで、新たな現在のスタックを反映したサウンド2026がスピーカ1224から出力されるため、ユーザは、新たな「キー」音楽クリップを有するミックスとして、新たな現行のスタックがどのようなサウンドになるかを聞くことができる。
【0099】
図21は、
図20に示されるGUI2002を有する個人用電子デバイス1000を示す。ここでユーザは、現行のスタックを完成ミックスとして共有する選択2144を行っている。例えば、選択2144は、デバイス1000のタッチ感知面に対する適切なタッチジェスチャ(例えば押下タッチジェスチャ)により行われ得る。
【0100】
図22は、
図21に示される選択2144に応答したGUI2202を有する個人用電子デバイス1000を示す。GUI2202は、所望のスタック共有方法を選択するようにユーザに促すテキストバナー2204を含む。選択2144の結果、現行のスタックのミックス再生は停止される。GUIコントロール2254を使用すると、スピーカ1224から現行のスタックの再生を再開し得る。GUI2202は、現行のスタック/ミックスを音楽クリップとしてソーシャルメディアプラットフォーム(例えば前述のTIKTOKプラットフォーム)にエクスポートするためのGUIコントロール2246を提供する。GUIコントロール2248は、現行のスタック/ミックスを音楽クリップとしてデバイス1000に保存またはエクスポートするオプションを提供する(例えばファイルシステムファイル、データベース、または共有メモリセグメントに格納される)。GUIコントロール2250は、現行のスタック/ミックスを音楽クリップとして、電子メールメッセージの添付ファイルまたはテキスト(SMS)メッセージの添付ファイルにより共有する、または現行のスタック/ミックスを音楽クリップとして、クラウドベースデータストレージサービスもしくは集中ホスト型ネットワークファイルシステムにアップロードするなど、さらなる共有オプションを提供する。GUI2202はまた、共有操作をキャンセルして、ユーザがGUI2002に対応するGUI状態に戻ることを可能にするキャンセルGUIコントロール2252も提供する。
【0101】
いくつかの変形形態では、GUI2202は、ユーザが音楽作成プロセスを続行できるように、スタックをデジタルオーディオワークステーション(DAW)にエクスポートするユーザオプションを提供する。例えば、GUI2202は、生成されたスタックをエクスポートして、例えばABLETON LIVE、PRO TOOLS、CUBASEなどの音楽制作ソフトウェアにインポートするオプションを提供し得る。そこから、ユーザは、音楽制作ソフトウェアを使用してユーザが作曲した新たな曲におけるセクションとして、生成したスタックを使用し得る。
【0102】
少なくともいくつかの実施形態では、本明細書に記載の技法の一部またはすべてを実施するシステムは、1つ以上のコンピュータアクセス可能媒体を含むまたは1つ以上のコンピュータアクセス可能媒体にアクセスするように構成された、
図23に示されるコンピュータシステム2300などの汎用コンピュータシステムを含み得る。示される実施形態では、コンピュータシステム2300は、入力/出力(I/O)インターフェース2330を介してシステムメモリ2320に接続された1つ以上のプロセッサ2310を含む。コンピュータシステム2300はさらに、I/Oインターフェース2330に接続されたネットワークインターフェース2340を含む。
図23は、コンピュータシステム2300を単一のコンピューティングデバイスとして示すが、様々な実施形態では、コンピュータシステム2300は、1つのコンピューティングデバイス、または単一のコンピュータシステム2300として共働するように構成された任意の数のコンピューティングデバイスを含み得る。
【0103】
様々な実施形態では、コンピュータシステム2300は、1つのプロセッサ2310を含むユニプロセッサシステム、またはいくつかのプロセッサ2310(例えば、2つ、4つ、8つ、または別の適切な数)を含むマルチプロセッサシステムであり得る。プロセッサ2310は、命令を実行可能な任意の適切なプロセッサであり得る。例えば、様々な実施形態では、プロセッサ2310は、様々な命令セットアーキテクチャ(ISA)、例えばx86、ARM、PowerPC、SPARC、もしくはMIPS ISA、または任意の他の適切なISAなどのうちのいずれかを実装する汎用プロセッサまたは組み込みプロセッサであり得る。マルチプロセッサシステムでは、プロセッサ2310のそれぞれは、同じISAを一般に実装し得るが、必ずしも同じでなくてもよい。
【0104】
システムメモリ2320は、プロセッサ2310によりアクセス可能な命令及びデータを格納し得る。様々な実施形態では、システムメモリ2320は、ランダムアクセスメモリ(RAM)、静的RAM(SRAM)、同期式動的RAM(SDRAM)、不揮発性/フラッシュ型メモリ、または任意の他のタイプのメモリなど、任意の適切なメモリ技術を使用して実施され得る。示される実施形態では、前述の方法、技法、及びデータなどの1つ以上の所望の機能を実施するプログラム命令及びデータは、サービスコード2325(例えばサービス100を全体的または部分的に実施するように実行可能)及びデータ2326として、システムメモリ2320内に格納されることが示される。
【0105】
いくつかの実施形態では、I/Oインターフェース2330は、プロセッサ2310と、システムメモリ2320と、ネットワークインターフェース2340及び/または他の周辺インターフェース(図示せず)を含むデバイス内の任意の周辺デバイスとの間のI/Oトラフィックを調整するように構成され得る。いくつかの実施形態では、I/Oインターフェース2330は、1つのコンポーネント(例えばシステムメモリ2320)からのデータ信号を、別のコンポーネント(例えばプロセッサ2310)による使用に適したフォーマットに変換するために、任意の必要なプロトコル変換、タイミング変換、または他のデータ変換を行い得る。いくつかの実施形態では、I/Oインターフェース2330は、例えば周辺構成要素相互接続(PCI)バス規格または汎用シリアルバス(USB)規格の変形など、様々なタイプの周辺バスを介して取り付けられるデバイスのサポートを含み得る。いくつかの実施形態では、I/Oインターフェース2330の機能は、例えばノースブリッジ及びサウスブリッジなどの2つ以上の別個のコンポーネントに分割され得る。また、いくつかの実施形態では、システムメモリ2320へのインターフェースなどのI/Oインターフェース2330の機能性の一部またはすべては、プロセッサ2310内へ直接組み込まれ得る。
【0106】
ネットワークインターフェース2340は、コンピュータシステム2300と、例えば
図1に示される他のコンピュータシステムまたはデバイスなど、ネットワーク2350に接続された他のデバイス2360との間で、データ交換を可能にするように構成され得る。様々な実施形態では、ネットワークインターフェース2340は、例えばイーサネット(登録商標)ネットワークのタイプなど、任意の適切な有線または無線の汎用データネットワークを介した通信をサポートし得る。さらに、ネットワークインターフェース2340は、アナログ音声ネットワークまたはデジタルファイバ通信ネットワークなどの電気通信/電話ネットワークを介した通信、ストレージエリアネットワーク(SAN)、例えばファイバチャネルSANを介した通信、及び/または任意の他の適切なタイプのネットワーク及び/またはプロトコルを介した通信を、サポートし得る。
【0107】
いくつかの実施形態では、コンピュータシステム2300には、I/Oインターフェース2330(例えば周辺構成要素相互接続エクスプレス(PCI‐E)規格のあるバージョン、またはQuickPath相互接続(QPI)もしくはUltraPath相互接続(UPI)などの別の相互接続を実装するバス)を使用して接続された1つ以上のオフロードカード2370Aまたは2370B(1つ以上のプロセッサ2375を含み、場合によっては1つ以上のネットワークインターフェース2340を含む)が含まれる。例えば、いくつかの実施形態では、コンピュータシステム2300は、コンピューティングインスタンスなどのコンピューティングリソースをホストするホスト電子デバイス(例えばハードウェア仮想化サービスの一部として動作する)として機能することができ、1つ以上のオフロードカード2370Aまたは2370Bは、ホスト電子デバイス上で実行されるコンピューティングインスタンスを管理できる仮想化マネージャを実行する。例として、いくつかの実施形態では、オフロードカード2370Aまたは2370Bは、コンピューティングインスタンスの一時停止及び/または一時停止解除、コンピューティングインスタンスの起動及び/または終了、メモリ転送/コピー動作の実行など、コンピューティングインスタンス管理動作を実行し得る。これらの管理動作は、いくつかの実施形態では、コンピュータシステム2300の他のプロセッサ2310A~2310Nにより実行されるハイパーバイザと連携して(例えばハイパーバイザからの要求に応じて)、オフロードカード2370Aまたは2370Bにより実行され得る。しかし、いくつかの実施形態では、オフロードカード2370Aまたは2370Bにより実施される仮想化マネージャは、他のエンティティからの(例えばコンピューティングインスタンス自体からの)要求に対応し得、いずれの別個のハイパーバイザとも連携し得ない(またはいずれの別個のハイパーバイザにもサービスを提供し得ない)。
【0108】
いくつかの実施形態では、システムメモリ2320は、前述のプログラム命令及びデータを格納するように構成されたコンピュータアクセス可能媒体の一実施形態であり得る。しかし、他の実施形態では、プログラム命令及び/またはデータは、異なるタイプのコンピュータアクセス可能な媒体上で、受信、送信、または格納され得る。コンピュータアクセス可能媒体には、例えばI/Oインターフェース2330を介してコンピュータシステム2300に接続されたディスクまたはDVD/CDといった磁気媒体または光学媒体などの任意の非一時的な記憶媒体またはメモリ媒体が含まれ得る。非一時的コンピュータアクセス可能記憶媒体には、RAM(例えばSDRAM、ダブルデータレート(DDR)SDRAM、SRAMなど)、読み出し専用メモリ(ROM)など、コンピュータシステム2300のいくつかの実施形態にシステムメモリ2320または別のタイプのメモリとして含まれ得る任意の揮発性媒体または不揮発性媒体も含まれ得る。さらに、コンピュータアクセス可能媒体は、ネットワークインターフェース2340を介して実装され得るようなネットワーク及び/または無線リンクなどの通信媒体を介して伝達される伝送媒体または電気信号、電磁信号、もしくはデジタル信号などの信号を含み得る。
【0109】
本明細書で議論または提案された様々な実施形態は、多様な動作環境で実施することができ、動作環境は、いくつかの事例では、多数のアプリケーションのうちのいずれかを作動させるのに使用され得る1つ以上のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含み得る。ユーザデバイスまたはクライアントデバイスには、標準オペレーティングシステムを実行するデスクトップコンピュータまたはラップトップコンピュータなどの多数の汎用パーソナルコンピュータのうちのいずれか、ならびにモバイルソフトウェアを実行し、多数のネットワーキングプロトコル及びメッセージプロトコルをサポートすることができる、セルラデバイス、無線デバイス、及びハンドヘルドデバイスが含まれ得る。このようなシステムはまた、開発及びデータベース管理などの目的で、様々な市販のオペレーティングシステム及び他の周知のアプリケーションのうちのいずれかを実行する多数のワークステーションを含み得る。これらのデバイスには、ダミーターミナル、シンクライアント、ゲーミングシステム、及び/またはネットワークを介して通信可能な他のデバイスなど、他の電子デバイスも含まれ得る。
【0110】
大半の実施形態は、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ファイル転送プロトコル(FTP)、ユニバーサルプラグアンドプレイ(UPnP)、ネットワークファイルシステム(NFS)、共通インターネットファイルシステム(CIFS)、拡張可能なメッセージング及びプレゼンスプロトコル(XMPP)、アップルトークなど、広く利用可能な様々なプロトコルのうちいずれかを使用する通信をサポートするために、当業者によく知られている少なくとも1つのネットワークを使用する。ネットワークには、例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、仮想プライベートネットワーク(VPN)、インターネット、イントラネット、エクストラネット、公衆交換電話網(PSTN)、赤外線ネットワーク、無線ネットワーク、及びこれらの任意の組み合わせが含まれ得る。
【0111】
ウェブサーバを使用する実施形態では、ウェブサーバは、HTTP/Sサーバ、ファイル転送プロトコル(FTP)サーバ、共通ゲートウェイインターフェース(CGI)サーバ、データサーバ、Java(登録商標)サーバ、ビジネスアプリケーションサーバなど、様々なサーバまたは中間層アプリケーションのうちのいずれかを実行し得る。サーバはまた、Java(登録商標)、C、C#、もしくはC++などの任意のプログラミング言語、またはPerl、Python(登録商標)、PHP、もしくはTCLなどの任意のスクリプト言語、ならびにこれらの組み合わせで記述された1つ以上のスクリプトまたはプログラムとして実装され得る1つ以上のウェブアプリケーションを実行することなどにより、ユーザデバイスからの要求に応じてプログラムまたはスクリプトを実行可能であり得る。サーバには、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、IBM(登録商標)などから市販されているデータベースサーバが含まれるが、これらに限定されないデータベースサーバも含み得る。データベースサーバは、リレーショナルまたは非リレーショナル(例えば「NoSQL」)、分散型または非分散型などであり得る。
【0112】
本明細書で開示される環境は、様々なデータストアならびに前述の他のメモリ及び記憶媒体を含み得る。これらは、コンピュータのうちの1つ以上に対してローカルである(及び/またはその中に常駐する)記憶媒体上、またはネットワークにわたる任意またはすべてのコンピュータからリモートである記憶媒体上など、様々な場所に常駐し得る。特定の実施形態集合では、情報は、当業者によく知られるストレージエリアネットワーク(SAN)に常駐し得る。同様に、コンピュータ、サーバ、または他のネットワークデバイスに属する機能を実行するために必要な任意のファイルは、ローカル及び/またはリモートに適宜、格納され得る。システムがコンピュータ化されたデバイスを含む場合、このようなデバイスはそれぞれ、バスを介して電気接続され得るハードウェア要素を含み得、要素は、例えば、少なくとも1つの中央処理装置(CPU)、少なくとも1つの入力デバイス(例えばマウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、及び/または少なくとも1つの出力デバイス(例えばディスプレイデバイス、プリンタ、またはスピーカ)を含む。このようなシステムはまた、ディスクドライブ、光学式ストレージデバイス、及び例えばランダムアクセスメモリ(RAM)または読み出し専用メモリ(ROM)、ならびに取り外し可能媒体デバイス、メモリカード、フラッシュカードなどのソリッドステートストレージデバイスといった、1つ以上のストレージデバイスを含み得る。
【0113】
このようなデバイスはまた、前述のように、コンピュータ可読記憶媒体リーダ、通信デバイス(例えばモデム、ネットワークカード(無線または有線)、赤外線通信デバイスなど)、及び作業メモリを含み得る。コンピュータ可読記憶媒体リーダは、リモートストレージデバイス、ローカルストレージデバイス、固定ストレージデバイス、及び/または取り外し可能ストレージデバイス、ならびにコンピュータ可読情報を一時的及び/またはより恒久的に含有する、格納する、送信する、及び取得するための記憶媒体を表すコンピュータ可読記憶媒体と接続され得る、またはこれを受け入れるように構成され得る。システム及び様々なデバイスはまた、通常、オペレーティングシステム及びアプリケーションプログラム、例えばクライアントアプリケーションまたはウェブブラウザなどを含む、少なくとも1つの作業メモリデバイス内に配置された多数のソフトウェアアプリケーション、モジュール、サービス、または他の要素を含む。代替的な実施形態は、前述のものから多数の変形形態を有し得ることを理解されたい。例えば、カスタマイズされたハードウェアも使用され得、及び/または特定の要素は、ハードウェア、ソフトウェア(アプレットなどのポータブルソフトウェアを含む)、もしくはこれら両方で実装され得る。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイスへの接続が採用され得る。
【0114】
コードまたはコードの部分を含む記憶媒体及びコンピュータ可読媒体には、当技術分野において既知または既に使用されている任意の好適な媒体が含まれ得、これには、例えば、コンピュータ可読命令、データ構造、ブログラムモジュール、または他のデータといった情報の格納及び/または送信に関する任意の方法または技術で実施される揮発性及び不揮発性、着脱可能及び着脱不可能な媒体が挙げられるがこれに限定されない、記憶媒体及び通信媒体が含まれる。記憶媒体及び通信媒体には、RAM、ROM、電気的消去可能プログラム可能読み出し専用メモリ(EEPROM)、フラッシュメモリもしくは他のメモリ技術、コンパクトディスク読み出し専用メモリ(CD‐ROM)、デジタル多用途ディスク(DVD)もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または所望の情報を格納するために使用され得、システムデバイスによりアクセスされ得る任意の他の媒体が含まれる。本明細書で提供される開示及び教示に基づいて、当業者は、様々な実施形態を実施するための他のやり方及び/または方法を認識するであろう。
【0115】
上記の説明では、様々な実施形態が説明された。実施形態の完全な理解をもたらすために、説明目的で具体的な構成及び詳細が明記された。しかしながら、実施形態が具体的な詳細なしに実施できることも、当業者には明らかであろう。さらに、周知の特徴は、説明される実施形態を不明瞭にしないために、省略または簡素化され得る。
【0116】
前述の説明及び添付の特許請求の範囲では、列(例えばマトリクスの列)またはx軸(例えばプロットのx軸)が言及され得、行(例えばマトリクスの行)またはy軸(例えばプロットのy軸)が言及され得る。文脈上明らかに別段の指示がない限り、前述の説明または添付の特許請求の範囲における列への言及は、行に置き換えられてもよく、その逆も同様であり、x軸への言及は、y軸に置き換えられてもよく、その逆も同様であり、一般性を失うことはない。
【0117】
本明細書では、括弧で囲まれたテキスト及び破線(例えば大きい破線、小さい破線、鎖線、及び点)で囲まれたブロックを使用して、いくつかの実施形態に付加的特徴を追加する任意の動作が説明される。しかしながら、このような表記は、これらが唯一の選択肢または選択的動作であること、または実線で囲まれたブロックは、特定の実施形態では選択的ではないことを意味すると、理解されるべきではない。
【0118】
文脈上明らかに別段の指示がない限り、用語「または(or)」は、前述の明細書において及び添付の特許請求の範囲において、包含的な趣旨で(排除的な趣旨ではなく)用いられ、よって、例えば要素の一覧をつなぐために使用された場合、用語「または(or)」は、要素一覧のうちの1つ、いくつか、またはすべてを意味する。
【0119】
文脈上明らかに別段の指示がない限り、用語「含む(comprising)」、「含む(including)」、「有する(having)」、「に基づく(based on)」、及び「包含する(encompassing)」などは、前述の明細書及び添付の特許請求の範囲において、オープンエンド式で使用され、さらなる要素、機能、行為、または動作を除外しない。
【0120】
文脈上明らかに別段の指示がない限り、語句「X、Y、及びZのうちの少なくとも1つ」などの接続的言語は、項目、用語などがX、Y、またはZ、またはこれらの組み合わせであり得ることを伝えていると、理解される。よって、このような接続的言語には、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、及びZのうちの少なくとも1つがそれぞれ存在するという意味を、デフォルトで要求する意図はない。
【0121】
文脈上明らかに別段の指示がない限り、前述の発明を実施するための形態及び添付の特許請求の範囲で使用される単数形「a」、「an」、及び「the」は、複数形も含むことが意図される。
【0122】
文脈上明らかに別段の指示がない限り、前述の発明を実施するための形態及び添付の特許請求の範囲において、第1、第2などの用語が、いくつかの事例で様々な要素を説明するために本明細書で使用されるが、これらの要素は、これらの用語に限定されるべきではない。これらの用語は、ある要素を別の要素と区別するためだけに使用される。例えば、第1のコンピューティングデバイスを第2のコンピューティングデバイスと称してもよく、同様に、第2のコンピューティングデバイスを第1のコンピューティングデバイスと称してもよい。第1のコンピューティングデバイス及び第2のコンピューティングデバイスはともに、コンピューティングデバイスであるが、これらは同じコンピューティングデバイスではない。
【0123】
前述の明細書では、実施態様ごとに異なり得る多数の具体的な詳細を参照して、技法が説明された。したがって、明細書及び図面は、限定的な意味ではなく、例示的なものとみなされるべきである。
【国際調査報告】