(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-14
(45)【発行日】2022-03-23
(54)【発明の名称】モジュラー自動音楽制作サーバー
(51)【国際特許分類】
G10H 1/00 20060101AFI20220315BHJP
G10G 1/04 20060101ALI20220315BHJP
【FI】
G10H1/00 102Z
G10G1/04
(21)【出願番号】P 2020535105
(86)(22)【出願日】2018-12-17
(86)【国際出願番号】 EP2018085326
(87)【国際公開番号】W WO2019121576
(87)【国際公開日】2019-06-27
【審査請求日】2020-07-15
(32)【優先日】2017-12-18
(33)【優先権主張国・地域又は機関】GB
(32)【優先日】2017-12-18
(33)【優先権主張国・地域又は機関】GB
(32)【優先日】2017-12-18
(33)【優先権主張国・地域又は機関】GB
(32)【優先日】2018-02-09
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】520217858
【氏名又は名称】バイトダンス・インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】1013 Centre Road,Suite 403-B,Wilmington,DE 19805 U.S.A.
(74)【代理人】
【識別番号】110000523
【氏名又は名称】アクシス国際特許業務法人
(72)【発明者】
【氏名】ピエール・チャンクィ
(72)【発明者】
【氏名】ジョナサン・クーパー
(72)【発明者】
【氏名】イーモン・ハイランド
(72)【発明者】
【氏名】エドモンド・ニュートン-レックス
(72)【発明者】
【氏名】ジェイソン・ストーリー
(72)【発明者】
【氏名】デビッド・トレベリアン
【審査官】中村 天真
(56)【参考文献】
【文献】特開2016-099445(JP,A)
【文献】特開2004-226892(JP,A)
【文献】特開2003-195866(JP,A)
【文献】国際公開第01/086628(WO,A2)
(58)【調査した分野】(Int.Cl.,DB名)
G10H 1/00- 7/12
G10G 1/00- 3/04
(57)【特許請求の範囲】
【請求項1】
音楽制作システムであって、
1つの音楽に対する外部リクエストを受信するための少なくとも1つの入力と、第1の音楽データが含まれる
1つの音楽を含むか又は指示する、前記外部リクエストに対する応答を送信するための少なくとも1つの出力とを含むコンピュータインターフェースと、
少なくとも第1の入力設
定に従って第2の音楽データを処理して、前記第1の音楽データを生成するように配置される第1の音楽制作コンポーネントと、
前記コンピュータインターフェースを介して内部リクエストを受信し、少なくとも前記内部リクエストによって指示される第2の入力設
定に基づいて前記第2の音楽データを提供するように配置される第2の音楽制作コンポーネントと、
前記外部リクエストに応答して前記第1の入力設
定と前記第2の入力設
定を確定し、前記コンピュータインターフェースを介して前記内部リクエストを起動するように配置されるコントローラーと、
を含む音楽制作システム。
【請求項2】
前記第1の音楽制作コンポーネントは、前記第1の音楽データをオーディオデータとして生成するように配置されるオーディオエンジンである請求項1に記載の音楽制作システム。
【請求項3】
前記第1の音楽制作コンポーネントは、デジタル音楽記号フォーマットの少なくとも1つの音楽セグメントの形で、前記第1の音楽データを生成するように配置される請求項1に記載の音楽制作システム。
【請求項4】
前記外部リクエストを前記コントローラーに割り当て、前記内部リクエストを前記第2の音楽制作コンポーネントに割り当てるように配置されるリクエストマネージャーを含む請求項1に記載の音楽制作システム。
【請求項5】
前記リクエストマネージャーは、前記外部リクエストを第1のキューに割り当て前記コントローラーに処理させ、前記内部リクエストを第2のキューに割り当て前記第2の音楽制作コンポーネントに処理させるように配置される請求項4に記載の音楽制作システム。
【請求項6】
対応する識別子を前記外部リクエストと前記内部リクエストに指定するように配置されるリクエストマネージャーを含み、前記コントローラーは、前記第1の音楽データを、前記外部リクエストに対して指定した前記識別子と関連付けて電子メモリに記憶し、前記第2の音楽データを、前記内部リクエストに対して指定した前記識別子と関連付けて前記電子メモリに記憶するように配置される請求項1に記載の音楽制作システム。
【請求項7】
音楽制作システムであって、
リクエストを受信するための少なくとも1つの入力と、各前記リクエストに対する応答を出力するための少なくとも1つの出力とを含むコンピュータインターフェースと、
各前記リクエストのタイプに基づいて、各前記リクエストを複数のジョブキューの1つに割り当てるように配置されるリクエストマネージャーと、
前記ジョブキューのうち第1のジョブキューに割り当てられた第1のリクエストに応答して
1つの音楽に使用されるオーディオデータを生成するように配置されるオーディオエンジンであって、前記第1のリクエストに対する応答により、前記オーディオデータを前記リクエストのソースで使用可能にするオーディオエンジンと、
前記ジョブキューのうち第2のジョブキューに割り当てられた第2のリクエストに応答して、デジタル音楽記号フォーマットの少なくとも1つの音楽セグメントを生成するように配置される合成エンジンであって、前記第2のリクエストに対する応答により、前記少なくとも1つの音楽セグメントを前記リクエストのソースで使用可能にする合成エンジンと、
を含む音楽制作システム。
【請求項8】
音楽制作システムで実行される方法であって、
コンピュータインターフェースで
1つの音楽に対する外部リクエストを受信するステップと、
前記外部リクエストに応答して、少なくとも第1の入力設
定と第2の入力設
定を確定するステップと、
前記コンピュータインターフェースを介して、前記第2の入力設
定を指示する内部リクエストを起動するステップと、
第2の音楽制作コンポーネントでは、前記コンピュータインターフェースを介して前記内部リクエストを受信し、前記第2の入力設
定に基づいて第2の音楽データを提供するステップと、
第1の音楽制作コンポーネントでは、前記第1の入力設
定に従って前記第2の音楽データを処理して、第1の音楽データを生成するステップと、
前記第1の音楽データが含まれる前記
1つの音楽を含むか又は指示する、前記外部リクエストに対する応答を送信するステップと、
を含む方法。
【請求項9】
音楽制作システムで実行される方法であって、
コンピュータインターフェースで複数のリクエストを受信するステップと、
各前記リクエストのタイプに基づいて、各前記リクエストを複数のジョブキューの1つに割り当てるステップと、
オーディオエンジンでは、前記リクエストにおける前記ジョブキューのうち第1のジョブキューに割り当てられた第1のリクエストに応答して、
1つの音楽のためのオーディオデータを生成するステップと、
前記コンピュータインターフェースでは、前記第1のリクエストに対する応答を出力し、前記応答により、前記オーディオデータを前記リクエストのソースで使用可能にするステップと、
合成エンジンでは、前記リクエストにおける前記ジョブキューのうち第2のジョブキューに割り当てられた第2のリクエストに応答して、デジタル音楽記号フォーマットの少なくとも1つの音楽セグメントを生成するステップと、
前記コンピュータインターフェースでは、前記第2のリクエストに対する応答を出力し、前記応答により、前記少なくとも1つの音楽セグメントを前記リクエストのソースで使用可能にするステップと、
を含む方法。
【請求項10】
非一時的なコンピュータ可読記憶メディアに記憶される実行可能な指令を含むコンピュータプログラムであって、前記実行可能な指令は、音楽制作システムで実行される場合に、前記音楽制作システムに請求項8又は9に記載されたステップを実施させるように配置されるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、自動音楽制作に関する。
【背景技術】
【0002】
人工知能(AI)に基づく自動音楽制作は、大きな可能性を秘めた新興技術である。限られた数の入力パラメーターに基づいてオリジナルの音楽を合成するように、AIシステム(例えば、ニューラルネットワークなど)のトレーニングに関する研究が行われている。これはエキサイティングな研究分野であるが、今まで開発された多くの方法には、音楽出力の品質と柔軟性に問題があるため、これらの方法の実際の環境での有用性が制限されている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本開示の1つの目的は、システムとの柔軟かつ複雑なインタラクションを可能にする改善されたインターフェースを備えた自動音楽制作システムを提供することである。これにより、ミュージシャンやプロデューサーなどの個人的なニーズや好みに合うようなシステムを作成ツールとして使用できる、エキサイティングな新しいユースケースが開かれる。
【課題を解決するための手段】
【0004】
本発明の第1の態様は、音楽制作システムを提供し、1つの音楽に対する外部リクエストを受信するための少なくとも1つの入力と、第1の音楽データが含まれる1つの音楽を含むか又は指示する、前記外部リクエストに対する応答を送信するための少なくとも1つの出力とを含むコンピュータインターフェースと、少なくとも第1の入力設定に従って第2の音楽データを処理して、第1の音楽データを生成するように配置される第1の音楽制作コンポーネントと、コンピュータインターフェースを介して内部リクエストを受信し、少なくとも内部リクエストによって指示される第2の入力設定に基づいて第2の音楽データを提供するように配置される第2の音楽制作コンポーネントと、外部リクエストに応答して第1の入力設定と第2の入力設定を確定し、コンピュータインターフェースを介して内部リクエストを起動するコントローラーと、を含む。
【0005】
実施の形態では、第2の音楽データは、デジタル音楽記号フォーマットの少なくとも1つの音楽セグメントを含んでもよい。
【0006】
第2の入力設定は合成設定であってもよく、第2の音楽制作コンポーネントは、合成設定に従って少なくとも1つの音楽セグメントを生成するように配置される合成エンジンであってもよい。
【0007】
コントローラーは、外部リクエストに応答して検索基準を確定し、検索基準にマッチングする少なくとも1つの音楽セグメントをライブラリで検索し、マッチングするセグメントが見つからない場合、内部リクエストを起動するように配置されてもよい。
【0008】
第2の音楽制作コンポーネントは、第2の入力設定に従ってライブラリから少なくとも1つの音楽セグメントを選択するように配置されてもよい。
【0009】
第2の音楽制作コンポーネントは、第2の入力設定にマッチングする音楽セグメントをライブラリで検索し、マッチングするセグメントが見つかった場合、見つかったマッチングするセグメントを第1の音楽制作コンポーネントに提供し、マッチングするセグメントが見つからない場合、音楽制作システムの合成エンジンに第2の入力設定に従って音楽セグメントを生成させ、生成された音楽セグメントを第1の制作コンポーネントに提供するように配置されてもよい。
【0010】
第1の音楽制作コンポーネントと第2の音楽制作コンポーネントの少なくとも1つは、ライブラリのための音楽セグメントを生成するように配置されてもよい。
【0011】
第1の音楽制作コンポーネントは、第1の音楽データをオーディオデータとして生成するように配置されるオーディオエンジンであってもよい。
【0012】
オーディオエンジンは、第1の入力設定に従って少なくとも1つの音楽セグメントをレンダリングしてオーディオデータを生成するように配置されてもよい。
【0013】
第1の音楽制作コンポーネントは、デジタル音楽記号フォーマットの少なくとも1つの音楽セグメントの形で第1の音楽データを生成するように配置されてもよい。
【0014】
音楽制作システムは、外部リクエストをコントローラーに割り当て、内部リクエストを第2の音楽制作コンポーネントに割り当てるように配置されるリクエストマネージャーを含んでもよい。
【0015】
リクエストマネージャーは、リクエストのタイプに基づいて各リクエストを割り当てるように配置されてもよい。
【0016】
リクエストのタイプは、オーディオタイプと音楽記号タイプのいずれかであってもよい。
【0017】
リクエストマネージャーは、外部リクエストを第1のキューに割り当てコントローラーに処理させ、内部リクエストを第2のキューに割り当て第2の音楽制作コンポーネントに処理させるように配置されてもよい。
【0018】
第1の入力設定又は第2の入力設定は、スタイルパラメータ、拍子、トラック継続時間、音楽小節の数及び1つ以上の音楽パーツのうち少なくとも1つを含んでもよい。
【0019】
内部リクエストに応答することによって、第2の音楽データをコントローラーで使用可能にする。
【0020】
第2の音楽制作コンポーネントは、第2の音楽データを識別子と関連付けてデータベースに記憶するように配置されてもよく、その中、応答には識別子が含まれてもよく、これにより、第2の音楽データをコントローラーで使用可能にする。
【0021】
音楽制作システムは、対応する識別子を外部リクエストと内部リクエストに指定するように配置されるリクエストマネージャーを含み、前記コントローラーは、前記第1の音楽データを前記外部リクエストに指定された前記識別子と関連付けて電子メモリに記憶し、前記第2の音楽データを前記内部リクエストに指定された前記識別子と関連付けて前記電子メモリに記憶するように配置されてもよい。
【0022】
外部リクエストは、当該1つの音楽を編集するリクエストであってもよい。
【0023】
外部リクエストは、編集対象の当該1つの音楽の識別子を含んでもよい。
【0024】
第1の入力設定と第2の入力設定は、編集リクエストに従って、前記識別子と関連付けてデータベースに保存される一セットのトラック設定を変更することによって確定される、一セットの変更されたトラック設定に含まれてもよい。
【0025】
外部リクエストは、編集対象のトラックを含むか又は識別する音楽データであってもよい。
【0026】
本発明の第2の態様は音楽制作システムを提供し、リクエストを受信するための少なくとも1つの入力と、各リクエストに対する応答を出力するための少なくとも1つの出力とを含むコンピュータインターフェースと、各リクエストのタイプに基づいて各リクエストを複数のジョブキューの1つに割り当てるように配置されるリクエストマネージャーと、第1のジョブキューに割り当てられた第1のリクエストに応答して1つの音楽のためのオーディオデータを生成し、第1のリクエストに対する応答によって、オーディオデータを当該リクエストのソースで使用可能にするように配置されるオーディオエンジンと、第2のジョブキューに割り当てられた第2のリクエストに応答して、デジタル音楽記号フォーマットの少なくとも1つの音楽セグメントを生成し、第2のリクエストに対する応答によって、当該少なくとも1つの音楽セグメントを当該リクエストのソースで使用可能にするように配置される合成エンジンと、を含む。
【0027】
実施の形態では、リクエストマネージャーは、各リクエストに一意のジョブ識別子を指定するように配置されてもよい。
【0028】
各リクエストに対する応答は、当該リクエストに指定されたジョブ識別子を含んでもよい。
【0029】
オーディオエンジンは、オーディオデータが第1のリクエストに対する応答におけるジョブ識別子によって得られるように、オーディオデータを第1のリクエストに指定されたジョブ識別子と関連付けてデータベースに記憶するように配置されてもよい。
【0030】
当該合成エンジンは、少なくとも1つの音楽セグメントが第2のリクエストに対する応答における前記ジョブ識別子によって得られるように、少なくとも1つの音楽セグメントを第2のリクエストに指定されたジョブ識別子と関連付けてデータベース又は別のデータベースに記憶するように配置されてもよい。
【0031】
第1のリクエストは、外部リクエストであってもよい。
【0032】
音楽制作システムは、第1のジョブキューに結合され、第1のジョブキューから第1のリクエストを受信し、第1のリクエストに応答してオーディオエンジンにオーディオデータを生成させるように配置されるコントローラーを含んでもよい。
【0033】
第2のリクエストは、第1のリクエストに応答してコントローラーによって起動される内部リクエストであってもよい。
【0034】
コントローラーは、第2のリクエストに対する応答を受信し、少なくとも1つの音楽セグメントを取得し、少なくとも1つの音楽セグメントをオーディオエンジンに提供して、少なくとも1つの音楽セグメントに基づくオーディオデータの生成を起動するように配置されてもよい。
【0035】
第2のリクエストは、外部リクエストであってもよい。
【0036】
第2のジョブキューは、外部の第2のリクエストが合成エンジンに直接ルーティングされるように、合成エンジンに結合されてもよい。
【0037】
第1のリクエストと第2のリクエストの少なくとも1つは、当該1つの音楽を編集するリクエストであってもよい。
【0038】
第1のリクエストは、当該1つの音楽を編集するリクエストであり、当該1つの音楽の識別子を含み、当該識別子と関連付けられてデータベースに保存されている少なくとも1つの既存の設定と第1のリクエストに応答して確定された少なくとも1つの新しい設定に基づいてオーディオデータを生成してもよい。
【0039】
第2のリクエストは、識別子を含む編集リクエストであり、識別子と関連付けられてデータベースに保存されている少なくとも1つの既存の設定と第2のリクエストに応答して確定された少なくとも1つの新しい設定に基づいて少なくとも1つの音楽セグメントを生成してもよい。
【0040】
第1のリクエストと第2のリクエストの少なくとも1つは、当該1つの音楽を編集するリクエストであり、編集対象の1つの音楽の音楽データを含むか識別してもよい。音楽制作システムは、音楽データをオーディオエンジンと合成エンジンの少なくとも1つに提供することによって当該1つの音楽の編集バージョンを作成するように配置されるコントローラーを含んでもよい。
【0041】
リクエストにおける音楽データはデジタル音楽記号フォーマットの少なくとも1つの音楽セグメントを含んでもよい。
【0042】
オーディオエンジンと合成エンジンの少なくとも1つは複数のジョブキューに結合され、異なるタイプのリクエストを受信してもよい。
【0043】
外部リクエストはいずれの入力設定も定義しなくてもよく、システムは第1の入力設定と第2の入力設定を自動的に確定するように配置されてもよい。
【0044】
本発明の第3の態様は、音楽制作システムで実行される方法を提供し、コンピュータインターフェースで1つの音楽に対する外部リクエストを受信することと、外部リクエストに応答して、少なくとも第1の入力設定と第2の入力設定を確定することと、コンピュータインターフェースを介して、第2の入力設定を指示する内部リクエストを起動することと、第2の音楽制作コンポーネントでは、コンピュータインターフェースを介して内部リクエストを受信し、第2の入力設定に基づいて第2の音楽データを提供することと、第1の音楽制作コンポーネントでは、第1の入力設定に従って第2の音楽データを処理して、第1の音楽データを生成することと、第1の音楽データが含まれる音楽を含むか又は指示する、当該外部リクエストに対する応答を送信することと、を含む。
【0045】
本発明の第4の態様は、音楽制作システムで実行される方法を提供し、コンピュータインターフェースで複数のリクエストを受信することと、各リクエストのタイプに基づいて各リクエストを複数のジョブキューの1つに割り当てることと、オーディオエンジンでは、第1のジョブキューに割り当てられた第1のリクエストに応答して、音楽のためのオーディオデータを生成することと、コンピュータインターフェースで第1のリクエストに対する応答を出力し、当該応答によって、オーディオデータを当該リクエストのソースに使用可能にすることと、合成エンジンでは、第2のジョブキューに割り当てられた第2のリクエストに応答して、デジタル音楽記号フォーマットの少なくとも1つの音楽セグメントを生成することと、コンピュータインターフェースで第2のリクエストに対する応答を出力し、当該応答によって、少なくとも1つの音楽セグメントを当該リクエストのソースに使用可能にすることと、を含む。
【0046】
本発明の第5の態様はコンピュータプログラムを提供し、非一時的なコンピュータ可読記憶メディアに記憶される実行可能な指令を含み、実行可能な指令は、音楽制作システムで実行される場合に、音楽制作システムにいずれかの方法のステップを実施させるように配置される。
【図面の簡単な説明】
【0047】
本発明をよりよく理解し、本発明の実施形態をどのように実施できるかを示すために、以下の図面を参照する。
【0048】
【
図2】着信のジョブリクエストが音楽制作システムによってどのように処理されるかを示す。
【
図3】スタックに配置されたコアシステムコンポーネントを有する音楽制作システムの高レベルの概要を示す。
【
図5】複数の音楽パーツの音楽セグメントを生成するための合成エンジンの例示的なアーキテクチャを示す。
【
図6】ユーザーからのリクエストに応答してトラックを生成する方法のフローチャートを示す。
【
図7】データベースを設
定するための可能な構成の概略図を示す。
【
図8】トラック設
定を選択するための階層的選択メカニズムを示す。
【
図9】音楽合成システムの一部の概略ブロック図を示す。
【
図10】アプリケーションプログラミングインターフェースの概略ブロック図を示す。
【
図11】音楽トラックを編集する方法を説明するフローチャートを示す。
【発明を実施するための形態】
【0049】
以下、AIを使用してオリジナル音楽を合成及び/又は制作することができるAI音楽制作システムについて説明する。
【0050】
AI音楽制作システムは、以下で「Jukedeck」システムと呼ばれる。
【0051】
伝統的に、合成音楽は人類の一意の領域である。AI技術が進歩を遂げたとしても、これらの技術を音楽合成に適用することは非常に困難であることが証明され、それは、音楽の複雑さと性質のためである。AIの1つの形式である機械学習は、現在、画像やサウンド認識などの分野でよく使用されている。しかしながら、AIの音楽への適用は成功がほとんどない。その原因は次の通りである。
【0052】
1. 音楽は非常に複雑であり、音楽は多次元であり、調性と時間空間との両方で動作し、多くの場合、多くの異なる方法で同時にインタラクションする多くの音楽コンポーネントを持っている。AIシステムは、この複雑さを理解して解決できる必要がある。
【0053】
2. 従来から、音楽制作(セグメントのアレンジ、ボリュームレベルの設定、適用効果など)は、ほとんど複雑な手動プロセスであり、完了するためには様々な高度なツールが必要である。現在の音楽が使用されている様々な環境で使用できる音楽を自動的に生成するためには、システムは楽譜を自動的に生成するだけでなく、この複雑な音楽制作プロセスも自動化する必要がある。
【0054】
Jukedeckの技術紹介
【0055】
Jukedeckシステムには、フルスタックのクラウドベースの音楽シンセサイザーが組み込まれており、従来のAIと音楽を関連付ける複雑さを解決する。当該技術は、高度な音楽理論に基づいて、ニューラルネットワークを斬新な方法で組み合わせて、ユニークでプロフェッショナルな品質の音楽をほんの数秒で合成及び制作する。エンドツーエンドのテクノロジースタックは、次のようにまとめることができる。(i)ジャンル及びその他の全体的な音楽属性を選択し、(ii)次に、これらの選択を組み合わせてレンズを形成し、当該レンズによって各音符と音符シーケンスを合成し(音楽合成)、(iii)次に、これらの合成された音符を完全なオーディオトラックに制作する(音楽制作)。以下は、合成からユーザーインターフェース/APIに制作するまでのスタックの概要である。
【0056】
エンドツーエンドのテクノロジースタック
【0057】
図12は、AI音楽制作システムの概略機能ブロック図であり、当該AI音楽制作システムは、自動合成エンジン2、自動制作エンジン3及びアプリケーションプログラミングインターフェース(API)形態のアクセスコンポーネント14を含む。
【0058】
自動音楽合成エンジン
【0059】
自動音楽合成エンジン2は、音楽を生成する第1ステップを実行する。伝統的に、AIに基づくシンセサイザーは、ハードコーディングされたルールベースのシステム(一般的に互いによく似たトラックを作る)又は基本的な機械学習システムのいずれかであり、これらのシステムは、複雑さを欠けるため、あらゆる環境でユーザーに役立つ多面的で心地よい音楽を生成することができない。
【0060】
対照的に、合成エンジン2は、新規のニューラルネットワーク構成を使用して、その機械学習システムが複雑で適切に構造化された高品質の音楽出力を生成できるようにする。また、これによりシステムは次のことを実行できる。
【0061】
音楽パーツが連携して機能する能力を最大化する─新しい技術により、システムは音楽的に説得力のある方法で相互に作用する音楽パーツを生成できるようになり、生成された音楽の全体的な品質を大幅に向上させる。
【0062】
音楽選択の韻律的文脈をよりよく理解する─他のAIシステムは、合成の選択を行う際に必要な韻律のコンテキストを理解するために必要な長期な記憶を持つことは困難である。しかしながら、この技術はこの問題を解決し、各合成選択に韻律のコンテキスト要素が組み込まれることを確保し、生成された音楽の品質を向上させる。
【0063】
大幅に変化する出力を生成する─ハードコーディングルールの代わりに機械学習技術を利用することによって、合成エンジン2は、トレーニングされたデータセットの特性をより適切に反映する音楽出力を提供する。これは、出力をより多様に変更できることを意味し、ハードコーディングルールが本質的に出力の可能性の範囲を制限するためである。
【0064】
自動音楽制作エンジン
【0065】
自動音楽合成エンジン2は(MIDI又は他のデジタル音楽記号の形)、音楽を合成することを担当し、自動音楽制作エンジン3は、音楽制作技術を当該合成された音楽に適用して、スタジオ品質のトラックを作成することを担当する。制作エンジン3は、自動音楽合成エンジン2の出力を、完全にアレンジされ制作された曲として自動的に組み立てて、それをオーディオファイルに出力する。制作エンジン3は、各音楽パーツに使用する楽器とサウンドを選択し、複雑なクラウドベースのオーディオエンジン(
図1の符号12で示される。以下を参照)でオーディオを自動的にレンダリング、混合、制御する。これにより、ユーザーの希望する音楽設
定(例えばジャンル、ムード、継続時間など)に従って曲を自動的に生成及び制作することができ、そのため、ユーザーは音楽のコンセプトや音楽制作技術の事前知識がなくても、新しい曲を作成することができる。
【0066】
自動音楽制作エンジン3には、次のようないくつかの重要な区別的特徴がある。
高性能のクラウドベースのオーディオエンジン─ほとんどのオーディオエンジンは、ローカルマシンで実行され、ユーザーインターフェースを介して制御されオーディオを操作するように設計される。対照的に、Jukedeckシステムのオーディオエンジン12はクラウドで実行され、ユーザー入力なしで、オーディオを自動的に制作するように設計される。これは、Jukedeckシステムは様々なアプリケーションやユーザーが利用でき、専門的な音楽知識を必要とせず、拡張性が高いことを意味する。
【0067】
音楽内の特定のポイントで何が発生するかに影響を与える能力─ビデオ作成者は、ほとんどの場合、ビデオの作成が完了した後に音楽を提供する。多くの場合、ビデオには、作成者が音楽を使用して強調したい特定のポイントがある。例えば、これらのポイントでのアクションは多かれ少なかれ強烈であり、音楽がマッチングする場合、ビデオはより効果的である。ビデオに音楽を提供する既存の方法では、通常、ユーザーは音楽で特定のイベントが発生すべき特定のポイントを設置できない。対照的に、本開示は、「同期ポイント」及び「強度」という特徴を提供し、さらに、ビデオ作成者に、それらのビデオサウンドトラックをより効率的にし、編集時間を短縮する機能を提供する。
【0068】
同期ポイント─Jukedeckシステムでは、ユーザーは、トラック内の同期ポイントを最も近いミリ秒に設置できる。つまり、Jukedeckシステムでは、特定の音楽イベント(例えば、セグメント変更)をトラック内の特定の時点に配置することができる。当該特徴により、音楽と別のメディアと同期させる(例えば、付随するビデオで発生するあるイベントと同期させる)ことができる。Jukedeckシステムは、オーディオトラック内の複数の異なる時点に複数の同期ポイントを設置することができる。
【0069】
強度─Jukedeckシステムでは、ユーザーは、音楽の強度をトラックでどのように変更させるかを指定することができる。定義された強度曲線は、サウンドの複数の属性にマッピングされ、さらに、生成された音楽を付随するメディアに合わせて自動的に整形することを可能にし、これにより、段階的にクライマックスまで蓄積した音楽構造を特定の時点で発生させることができる。
【0070】
これは、ユーザーが次の入力を使用して音楽を作成できる単純な状況ではなく、当該入力は、事前にレンダリングされたオーディオステム(stem)を使用するセグメント内の特定のポイントでのサウンドに影響し、一方、Jukedeckのエンジンは、ユーザーの入力に応答してオリジナルのオーディオをリアルタイムで生成する。オーディオをリアルタイムでレンダリングすることによって、プロセス全体では音楽の変更をより詳細に制御することができる。ステムベースのシステムは、効果を、曲の作成に使用されるオーディオに適用するしかできないが、Jukedeckシステムは、任意の効果を体験する前に、再生中の音符を直接変更したり、各音楽シーケンスに使用されるサウンドを変更したりすることができる。これにより、システムは、所望の同期ポイント又は強度の変更に応答するときによりリアルに聞こえることを可能にする。例えば、水中に潜っている人のスローモーションビデオでは、同期ポイント又は強度ピークは、クライマックスに蓄積された音楽効果を作成するために、彼又は彼女が水に当たるポイントと一致するように選択することができる。
【0071】
以前に生成されたオーディオトラックを編集する能力─編集機能により、以前に生成されたオーディオトラックを編集でき、また、新しい高レベルの設定(例えば変更された継続時間)に準拠するようにリクエストすることで新しいバージョンを作成することができる。これは、ユーザーが、オリジナルの曲と似るように聞こえ、必要な編集を組み込んだ以前に制作された曲の改訂バージョンを自動的に生成することができることを意味する。これにより、ユーザーは、このタスクに従来必要であった専門的な編集スキルを必要とせずに、例えば任意の曲の継続時間をすばやく効率的に変更することができる。
【0072】
ニューラルネットワークに基づくオーディオ合成─この技術の拡張は、サードパーティの仮想楽器を必要とせずに、MIDIデータをオーディオデータに変換するようにニューラルネットワークをトレーニングすることである。
【0073】
事前にレンダリングされた、人間が合成したオーディオステムを自動的にアレンジする能力─Jukedeckシステムのアーキテクチャはモジュール式であり、つまり、この機能が必要な状況では、自動音楽制作エンジン3は、予めレンダリングされた、人間が合成したオーディオステムを動的に再アレンジして、自動音楽合成エンジン2の出力を置き換えることもできる。これは、この技術を使用して、事前にレンダリングされたオーディオステムを、正確な同期ポイントが必要なメディアに適合させることができることを意味する。
【0074】
アプリケーションプログラミングインターフェース(API)
【0075】
API 14により、サードパーティの開発者は、AI合成音楽(オーディオ又はMIDI)の生成とカスタマイズをその自身のアプリケーションプログラム(アプリケーションプログラム、ブラウザー、又はモバイル環境)に直接組み込むことができる。
【0076】
説明のAI音楽制作システムの重要な特徴は、アプリケーションプログラミングインターフェース(API)であり、APIにより、開発者は、AI合成及び制作システムの全ての機能にアクセスでき、ユーザーは、プロ品質のカスタマイズの音楽を大規模に自動的に作成できる。ボタンをクリックすることによって、様々な音楽スタイルにアクセスすることができる。
【0077】
APIは、オーディオとMIDIに使用されるAPIである。つまり、APIを利用すると、ユーザーは、オーディオファイル及びその基礎となる作品の両方をMIDIフォーマットで生成することができる。提供されるいくつかの可能なオプションは、次の表にまとめられている。
【表1】
【0078】
オーディオ及びMIDI APIを使用して、ビデオ作成、ゲーム、音楽制作、様々な環境でのビジュアルコンテンツやその他のコンテンツに付随する音楽生成、ポッドキャスティング、コンテンツ自動化などの、幅広いアプリケーションをサポートすることができる。
【0079】
利点は次のとおりである。シングルクリック、パーソナライズ音楽でユーザーにクリエイティブエクスペリエンスを与えることができ、独特の特徴によってユーザーエンゲージメントを高め、数行のコードだけで完全なオーディオトラックをプラットフォームに返し、人工的に作成した音楽をユーザーに提供し、ユーザーは、録音された音楽に関連するいくつかのカスタム制限なしで、人工的に作成した音楽を自由に使用することができる。
【0080】
図3は、AI音楽制作システムのブロック図を示し、後でさらに詳細に説明されるAI音楽制作システムのコア機能のいくつかの高レベルの概要を与える。
【0081】
ここで、人工知能という用語は広い意味で使用されているため、機械学習(ML)システムと、MLシステムではないエキスパート(ルールベース)システムと、MLシステムでもエキスパートシステムでもない他の形式のAIシステムをカバーする。以下では、MLシステムとエキスパートシステム又は上記の組み合わせを具体的に参照するが、発明は、他の形式のAIシステムにも同様に適用される。
【0082】
当該システムは、合成エンジン2と制作エンジン3を含み、これらは、当該システムの機能の2つの主要な側面を大まかに表す。これらは、スタックレイヤーとしてアレンジされて示され、合成エンジンは、制作エンジンの下に位置し、それぞれの機能を反映する。スタックの様々な構造については後で説明するが、これらの構成は、合成と制作との間のこの区分に従う。
【0083】
合成エンジン2は、デジタル音楽記号フォーマットで音楽セグメントを合成する。ここで、デジタル音楽記号フォーマットは、コンピュータで読み取り可能な形式の楽譜のデジタル表現を意味する。このようなフォーマットの1つは、イベントに基づくフォーマットであり、この場合、音楽音符は、開始時間/停止時間のあるイベントによって指示される。このような記号は既知である。これは、音楽音符が、ピッチ値と、音符の開始時間と終了時間を表す(又は、開始時間と継続時間又は「維持」の観点から見る)関連タイミングデータとして表されるフォーマットであってもよい。例えば、音符は個別に、又は和弦で表すことができる。
【0084】
ピッチ値は通常、音楽のハーフトーンとして量子化されるが、これは必須ではなく、量子化のレベルは音楽のスタイルによって異なる場合がある。通常、他の音楽データも、例えば各音符のピッチ変調や速度などのフォーマットで表現される。速度パラメータは、アコースティック楽器にまでさかのぼり、一般に、ピアノやギターなどの楽器を演奏する際の強さに直感的に対応する。このフォーマットは、内部の音楽合成ロジックに従って様々なパラメーターを解釈することにより、楽譜を「演奏」してオーディオを作成するシンセサイザー(例えば仮想楽器など)で解釈できる。このフォーマットの一例として、MIDIがあり、MIDIは、標準化され、広く使用されている楽譜を表現するための方法であるが、この用語は、カスタマイズフォーマットを含む他のフォーマットに一般的に適用される。以下では、例としてMIDIセグメントを参照するが、説明は他のどの音楽記号フォーマットにも同様に適用される。合成エンジンは、後述するように、機械学習(ML)に基づいて動作することが好ましい。
【0085】
ここで、「音楽セグメント(music segment)」と「音楽のセグメント(musical segment)」という用語は同義であり、一般に、デジタル音楽記号フォーマットの任意の音楽セグメントを指す。各セグメントはコンテキストに応じて、例えば音楽小節、小節の一部(例えば4分音符、8分音符、8分音符の長さの半分のセグメントなど)又は複数の小節のシーケンスであってもよい。音楽セグメントは、長い楽譜におけるセグメントであってもよい。楽譜は、複数の音楽パーツ(ボーカルパート、楽器、特定の楽器の左手と右手のパートなど、異なる演奏声に対応)で構成される。音楽記号では、通常、各パートは別々の譜表でスコアリングされ(例えば、和弦シンボルを使用して和弦パートをスコアリングすることができる)、この観点から見ると、各音楽セグメントは、パートの1つである小節、小節の一部又は小節シーケンスに適用することができる。これは、MIDIセグメントにも同様に適用され、MIDIセグメントとは、MIDIフォーマットの音楽セグメントである。個々のMIDIセグメントは、単独のMIDIファイル又はデータストリームに反映することができるが、異なるMIDIセグメントは同じMIDIファイル又はデータストリーム内に反映することもできる。当技術分野で知られているように、例えば、同じMIDIファイル又はデータストリーム内に異なる音楽パーツに対するMIDIセグメントを反映するように、異なるパートに異なるMIDIチャネルを使用してもよい。そのため、以下の説明では、MIDIループと、MIDIループ又はパーツの個々のセグメントの両方とも音楽セグメントと呼ぶことができる。指す内容は文脈上明らかになる。
【0086】
制作エンジン3のコアの機能は、1つまたは複数のMIDIセグメントのセットを取得し、それらを再生可能なオーディオデータに変換することである。これは複雑なプロセスであり、通常は複数の仮想楽器とオーディオエフェクト(リバーブ、遅延、圧縮、ディストーションなど)を慎重に選択して、異なるMIDIセグメントを別々のオーディオデータとしてレンダリングし、それらを相乗的に「ミックス」(結合)して、希望する全体的な音楽と効果音又は「サウンドスケープ」を持っている最終的な「トラック」を形成し、トラックは実質的に音楽の録音である。制作エンジンの役割は人間の音楽プロデューサーの役割に類似しており、制作エンジンは、専門家の人間の知識に基づいて配置できる。但し、使用中、制作プロセスは、比較的少数の選択された制作パラメータによって駆動される完全に自動化されたプロセスである。制作エンジンはAIコンポーネントでもあり、エキスパート(ルールベース)システム、非MLシステム、MLシステム又はルールベースとML処理との組み合わせとして実現される。
【0087】
システムによって提供される主要なサービスの1つは、トラックの形式(例えばWAV、AIFF、mp3など)で「ゼロから」音楽を作成することであり、作成されたMIDIセグメントを合成し、これらのMIDIセグメントはトラックの基礎を形成し、トラックは、制作エンジンがMIDIセグメントに従ってオーディオパーツを合成し、上記の方法でこれらのオーディオパーツをミキシングすることによって生成される。主要なサービスは本明細書では「フルスタック」サービスと呼ばれる。
【0088】
なお、システムアーキテクチャの利点は制作エンジン又は合成エンジンの機能の各部分をサービスとして提供できることである。
【0089】
そのようなサービスの1つは本明細書では「サービスとしてのMIDI」と呼ばれ、それにより、人間の制作者は、MLによって生成されたMIDIセグメント(例えば、ループ)を取得することができ、例えば、デジタルオーディオワークステーション(DAW)で、MLによって生成されたMIDIセグメントに自身の個人的な制作方法を使用することができる。基本的に、これは本質的には独立したサービスとして合成エンジンの機能を提供するが、後で明らかになるように、システムの実装方法によって、制作エンジンの要素を利用することができる(後で説明するように、制作と合成の間の区分は、ある程度実装固有である)。これは、制作スキルはあるが合成スキルや音楽のインスピレーションが不足しているユーザーに特に役立つ。
【0090】
別のそのようなサービスは「サービスとしての制作」であり、それにより、作成者はシステムに、自分が合成したMIDIセグメントを提供でき、このコンテキストでは、AIシステムは制作者の役割を担い、これらのMIDIセグメントから完成のトラックを作成する。これは、独立したサービスとしての制作エンジンの機能を提供し、本質的にはサービスとしてのMIDIの反対である。サービスとしての制作は、制作スキルや傾向がない作成者に特に役立つ。
【0091】
全てのサービスは、アプリケーションプログラミングインターフェース(API)形式(例えばweb API)のアクセスコンポーネント14を介してアクセスすることができ、それにより、インターネットなどのコンピュータネットワークを介してシステムのAPIサーバーと外部装置との間でAPIリクエストと応答を送受信する。アクセスコンポーネント14は、後述するように、内部リクエストと外部リクエストを受信するためのコンピュータインターフェースを含む。
【0092】
合成と制作との間の区分に関して、これらのそれぞれは特徴を限定する特定のコアを持っているが、システムアーキテクチャに関し、どこに線を引くかについてある程度の柔軟性がある。最後、当該システムは、それが動作する音楽の原理に合わせて構成される。
【0093】
簡単に言えば、従来の音楽作成プロセスは次の段階に分けることができる。
1. 合成
2. 演奏(又は人間化)
3. 制作
【0094】
コンテキストに応じて、ある形式の合成は、要素合成とアレンジという2つの異なるサブステージに分割できる。ここで、要素合成とは、トラックを構成する基本的な音楽要素を作成し、その後、基本的な音楽要素をアレンジして説得力のある長期的な構造を持つ音楽セグメントを作成することを指す。これらは全て、シンセサイザーの制御の範囲内にある場合もあれば、全く別のステージである場合もあり、従来から、ある程度音楽のスタイルに依存する。なお、他のコンテキストでは、合成とアレンジは基本的に一つの全体として実行することができる。本明細書で使用される「合成」という用語は、コンテキストに応じてアレンジに組み込む又は要素合成を指す。伝統的に、演奏は、人間の演奏者によって導入された変更(例えばタイミング/速度変更など)の要素であり、当該演奏を録音でキャプチャするプロセスを制作する。しかしながら、時間が経つにつれ、これらの側面の境界は、特に現代的な電子音楽の場合、ますます不鮮明になり、電子音楽は、MIDIシーケンスなどを使用して最少の人間の演奏を超えず作成することができるため、場合によって、演奏よりも制作に重点が置かれる。現在、制作という用語は、例えば、各チャネルのレベルのバランス、イコライゼーション、ダイナミックコントロール(圧縮、制限など)及びその他のオーディオエフェクト(リバーブ、遅延、ディストーションなど)、各チャネルのオーディオを生成するための仮想楽器の選択など、幅広いものをカバーできる。
【0095】
AI音楽制作システムの実装方式に関して、合成、アレンジ及び演奏機能を制作エンジンの本質的に独立した機能として実現することができ、合成エンジンからMIDIセグメントを取得し、それぞれアレンジ及び人間化する。例えば、MIDIセグメントは、小節の一部(例えば、1/16又は1/32)として厳密に時間量子化された短いループであってもよい。その後、これらのMIDIセグメントを(例えば、メインソングのコーラスの構造に従って)アレンジすることができ、増加変化の程度(時間、速度、ピッチなど)を大きくして演奏を向上させ、不完全な人間の演奏に近づけることができる。この方法によって、これらの機能及び最終的な音楽制作プロセスの一部として実行されるMIDI処理を制作エンジンに簡単に実行することができる。
【0096】
なお、同等に実行可能な方法は、これらの機能の1つ又は2つを合成自体とマージすることであり、これにより、ML合成エンジンは、合成エンジン内において説得力のある長期的な構造と可能な人間化で音楽を合成するようにトレーニングされる。
【0097】
従って、制作エンジン、合成エンジン又は両方の組み合わせでアレンジと演奏を実現することができる。
【0098】
実際の環境では、システムのアーキテクチャは、音楽合成とアレンジに使用される方法をある程度反映する。
【0099】
人間化、特に選択可能な成分は、全てのスタイルの音楽(例えば、特定のスタイルの電子音楽)には望ましくない場合があることに注意されたい。
【0100】
合成エンジン:
【0101】
合成エンジン2の可能な構成を以下に説明する。まず、合成エンジン2を形成するいくつかの設計の基本原理について説明する。
【0102】
確率的シーケンス模型(PSM)は、値又はアイテムのシーケンス上の確率分布を確定するコンポーネントである。当該分布は、例示的なシーケンスのデータセットから学習するか、又は、例えば分野の専門家によって事前に固定することができる。適切なデータセットを選択するか、又は適切な専門知識をエンコードすることにより、PSMに関心のあるドメインの典型的時間構成、例えば音楽における典型的な和弦又は音符シーケンスを反映させることができる。
【0103】
PSMは、その分布に従って、これまでにサンプリングされたアイテムのプレフィックスが与えられた場合に、次の可能性のあるアイテムの暗黙の確率分布から一度に1つのアイテムをサンプリングすることによってシーケンスを生成するために使用できる。つまり、選択された1つまたは複数のアイテムに基づいてPSMによって生成された可能なアイテムの確率分布に従って、各アイテムを選択する。合成エンジンのコンテキストでは、アイテムは音楽セグメントであり、例えば合成エンジンレベルの小節の一部(例えば1/16、1/32など)に対応することができ、PSMの配置方法に依存する任意の長さのセクションであってもよい。各音楽セグメントは例えばシーケンスにおける特定のポイントでの個別の音符又は和弦に対応することができる。
【0104】
確率分布は、当該シーケンス用に既に選択された1つ以上の音楽セグメントに基づいてシーケンス用に選択される候補音楽セグメント(音符、和弦など)及び各候補音楽セグメントの関連する確率値のセットを提供し、当該確率値は当該音楽セグメントがシーケンスにおける次の音楽セグメントとして選択される可能性を定義した。出力は確率的であるため、可変要素が導入される。これにより、同じ合成設定で異なる合成を生成することができる(以下で説明するように、合成設定自体を選択するときに、付加の確率的要素を導入することができる)。
【0105】
PSMの例には、マルコフ連鎖、確率的文法、確率的最終層(柔軟性最大伝達関数(SOFTMAX)など)を備えたリカレントニューラルネットワークが含まれる。
【0106】
合成エンジン(CE)は少量の合成パラメータを完全な楽譜又はより短い音楽節に変換することができるシステムであり、任意の数のパーツを有し得る。パーツは、演奏音声間の音楽素材の区分として理解され、様々な方法で表現することができる。この区分は音楽制作の基本であり、例えば、物理的な音楽演奏をシミュレートするために、様々な楽器や空間パラメータを各パーツに割り当てることができる。
【0107】
複数のパーツに例えばニューラルネットワークなどの単一のPSMを提供することができる比較的基本的な合成エンジンを構築することができる。つまり、複数のパーツによる合成の全ての側面の完全な一瞬一瞬の記述の上に、単一のPSMを構築する。このような方法は実行可能であるが、より複雑な合成の場合、モデルを単純化して実行可能にするために内部のトレードオフが必要になる場合がある。状況によってはこれで十分な場合もあるが、より複雑な合成に関しては、他の方法が有益な場合がある。
【0108】
従って、複雑さのレベルに応じて、複数のPSMの間でタスクを分割することが適切な場合があり、その中、各PSMは、属性の特定の組み合わせ又は特定のパーツに集中するなど、特殊な役割を持つ。この場合に、重要なモデル化の決定は、各PSMの範囲がどの程度具体的であるべきかである。
【0109】
モジュラー方法で、疎結合されたPSM集合を一緒にまとめることは、CEに対する各リクエストを処理する方法に大きな柔軟性をもたらす。
【0110】
以下に説明する技術を使用して、個々のPSMの能力を制限することなく、他のPSMと同じように動作するように、各PSMを協調することができる。つまり、これらの原理は、複数のPSM間で情報を共有するという問題を柔軟な方法で解決する解決策を提供する。当該技術の主な要素は、次のようにまとめることができる。
【0111】
1.PSMへの入力又はPSMからの出力の一部を形成できるように、音楽の属性を処理するためのモジュラー拡張可能なシステム。
2.属性及び/又はパーツの制限された組み合わせのモデリングを担当するための複数のPSM。
3.別の属性又は外部の制約によって生成された属性に従ってPSMからサンプリングするイベントを制限するためのメカニズム。
【0112】
以下、これらの要素について詳細に説明する。
【0113】
1.音楽の属性がPSMへの入力又はPSMからの出力の一部を形成できるように、音楽の属性を処理するためのモジュラー拡張可能なシステム。
【0114】
音楽イベントは、イベントに関する潜在的な無制限の数の側面又は属性から説明できる、固有属性(例えば、ピッチ、継続時間、ビブラートなど)及びイベントとそのコンテキストとの関係(例えば、基本的なハーモニー、その時間的な位置、音符が前の音符よりも高いか低いかなど)を含む複雑なオブジェクトである。限られた数のこれらの「視点」に焦点を合わせると、PSMは、(扱いやすいモデルを得るために)音楽シーケンスの特定の側面における確率的構成のキャプチャに焦点を合わせ、同時に、それ以外、他のシステムによって処理される。2つのPSMは、1つ以上の視点を共有することによって協調することができ、例えば、一方のPSMから視点の値を生成し、それを他方のPSMのサンプリング空間への制約として入力することができる。これにより、モデリング問題の複雑さを大幅に低下させる。視点と一緒に動作するモジュラー方法は、PSMが、トレーニング中と生成中の両方でPSM間の一致した協調を保証しながら、視点の任意の組み合わせをモデリングするために簡単に作成することができることを意味する。
【0115】
2.属性及び/又はパーツの制限された組み合わせのモデリングを担当するための複数のPSM。
【0116】
複雑な合成問題を解決するための「分割統治」方法は、特定の音楽属性(特にスタイル)に特化したPSMを提供することである。例えば、1つのPSMは、継続時間を有する和弦記号の制作に特化し、別のPSMは、和弦記号及びメロディーの音符のピッチ及び継続時間の制作に特化することができる。これは、各PSMが、その属性の組み合わせを精確にモデリングすることに焦点を合わせることができることを意味し、これにより、高品質で音楽的に説得力のある出力を生成する。PSMの疎結合は、それらが合成リクエストを処理する点で選択された組み合わせでは自由に使用できることを意味し、システムが1つの合成に対して生成されたパーツの数及び種類を柔軟に選択できるようにする。
【0117】
3.別のPSMに発生する属性に従ってPSMからサンプリングするイベントを制限する能力。
【0118】
特定のPSMは、1つのPSMの出力を別のPSMの(パーツである可能性がある)入力にする方式で使用され得る。例えば、和弦記号を有するメロディー音符におけるPSMは異なるPSMから制作された和弦記号にマッチングするように調整される。これは、パーツ間の一致性を促進し、合成エンジン2は、音楽品質を犠牲にすることなく、マルチPSMの方法モジュール性を利用することができる。
【0119】
図4は、上記の原理に基づく合成エンジン2の可能な配置のさらなる詳細を示す。この場合、タスクは複数のニューラルネットワークの間で分割されるが、これらのニューラルネットワークは他の形式のPSMであってもよい。
【0120】
合成エンジン2は、それぞれ内部の入力と出力である入力402と出力404を有する。合成エンジン入力402は、MIDIセグメントに対するリクエストを受信するように配置され、各MIDIセグメントは、後述するように割り当てられたジョブ識別子(ID)を持っている。
【0121】
合成エンジンの主要な機能は、異なる音楽パーツに対して音楽的にコラボレーションした音楽セグメントを生成することであり、これらの音楽セグメントは、同時に演奏されて首尾一貫した音楽を作成するように構成される。MIDIセグメントは、より複雑なトラックを構築するようにループされる(繰り返される)midi「ループ」であってもよい。異なる音楽パーツに対して異なるMIDIループを提供する場合、これらのMIDIループは、パーツを一緒に演奏する効果を達成するように同時にループすることができる。その代わりに、単一のMIDIループでは、複数のパーツをキャプチャーすることができる。しかしながら、これらの原理を拡張して、合成エンジン2がより長い音楽節を提供することを可能にし、さらに、オーディオトラックの継続時間にわたる各パーツに完全な音楽節を提供する。
【0122】
単一のジョブリクエストでは複数の音楽パーツに使用される(1つ以上の)音楽セグメントをリクエストすることができる。異なる段落の音楽(例えば、メインソングとサブソング)をそれぞれリクエストする場合、これらは個別のジョブリクエストでリクエストすることができ、単一のジョブリクエストで、このような音楽段落をリクエストする(例えば、メインソングとサブソングを一緒にリクエストする)可能性もある。これら(1つ以上)のジョブリクエストは、
図2の(以下で説明する)ジョブリクエストに対応するが、
図4では、406a、406bと表記される。なお、これらのジョブリクエストは、アクセスコンポーネントの外部入力から直接受信でき(
図1を参照し、以下のようになる)、或いは、
図2を参照して説明するように、内部ジョブリクエストとして受信することができる。各ジョブリクエストにはジョブIDと合成パラメータのセットが含まれ、この例では、当該パラメータのセットは次のとおりである。
【表2】
【0123】
上記のように、これらの合成パラメータの全ては必須であるわけではなく、異なる形態では他の異なるタイプの合成パラメータを定義することができる。当該システムの主要な側面は、ユーザーが所望のタイプを定義することができる(その代わりに、当該システムはタイプが指定されていない場合にタイプを自動的に選択することができる、下記を参照する)ことであり、また、合成エンジン2は、後述するアーキテクチャによって、異なるタイプの合成を提供することができる。
【0124】
合成層2は、408A及び408Bとして表記される複数の合成モジュールを含む。各合成モジュールは、トレーニングされたニューラルネットワークの形式であり、各合成モジュールは全て、非常に特定のタイプの音楽トレーニングデータで既にトレーニングされたため、特定のタイプの音楽を生成することができる。以下の例では、合成モジュールはネットワークと呼ばれるが、この説明は他の形式のML又はPSM合成モジュールにも適用される。
【0125】
各ジョブリクエスト406a、406bにおける合成パラメータは、ネットワーク408A、408Bの適切な1つを選択するために使用されてもよく、選択されたネットワークへの入力として使用されてもよい。この例では、各所定のタイプは対応する複数のネットワークに関連付けられる。一例として、
図4は、第1のタイプ(タイプA)に関連付けられる第1のネットワーク408Aと、第2のタイプ(タイプB)に関連付けられる第2のネットワーク408Bを示す。
【0126】
各タイプグループ408A、408B内で、目前のタスクに適したネットワークを選択することができる。ネットワークを選択する方法は、前述の原理に基づいてこれらのネットワークを最適化する方法に依存する。
【0127】
各ジョブリクエスト406a、406bについて、合成エンジン2の合成コントローラー408は、ネットワークの適切なサブセットを選択して当該ジョブリクエストを処理する。ネットワークサブセットは、ジョブリクエストで指定された音楽タイプに関連付けられるサブセットに基づいて選択される。
【0128】
上記のように、例えば和弦やメロディーなどの複数のパーツを同じジョブリクエストではリクエストすることができる。これは、合成エンジン2への内部リクエストと外部リクエストの両方に適用される。
【0129】
各ジョブリクエスト506a、506bに応答して生成された(1つ以上の)MIDIセグメントは割り当てられるジョブIDと関連付けてジョブデータベースに記憶される(24、
図1)。或いは、MIDIセグメントは、独立のデータベースに記憶することができ、このコンテキストでのジョブデータベースに関する全ての説明は前記イベントにおける独立のデータベースにも適用される。
【0130】
図5を参照し、特定のスタイルに関連付けられたネットワークは協力して、音楽的にコラボレーションした複数の要素を作成する。これは、ネットワークの出力を階層関係にある他のネットワークへの入力として提供することで実現される。
【0131】
この基本原理を説明するために、
図5は、タイプAに関連付けられた3つのネットワーク、すなわち、和弦(CN)、メロディー(MN)、及びハーモニー(HN)を示し、
図4における第1のネットワーク408Aに対応する。
【0132】
この例では、ネットワークCN、MN及びHNのそれぞれは合成エンジン2の合成コントローラー408によって上記の方式で確定された合成パラメータ502を入力として受信するように配置される。同じ入力として示されているが、ネットワークはまったく同じパラメーターを受信する必要はなく、また、例えば、それぞれは合成パラメータの異なる選択を受信することができる。
【0133】
和弦ネットワークCNは、パラメータ502に基づいて和弦シーケンス(プログレッション)504を生成するように配置される。これはMIDIである必要はなく、例えば記号和弦表現であってもよいが、後続の処理のためにMIDIに変換すると(必須ではないが)便利である可能性がある。生成された和弦シーケンスを該当するジョブIDと関連付けてジョブデータベースに記憶する。
【0134】
また、メロディーネットワークMNは、和弦シーケンスを音楽的に伴奏するように、生成された和弦シーケンス504を入力として受信し、和弦シーケンス504と合成設定502に基づいてメロディー506を生成する。つまり、メロディー506は、音楽的に和弦シーケンス504を取り囲んで構築される。生成されたメロディー506も、該当するジョブIDと関連付けてジョブデータベース24に記憶される。
【0135】
また、メロディー506は、ハーモニーネットワークHNに入力される。ハーモニーネットワークHNは、合成設
定502とメロディー506に基づいてハーモニー508を生成し、ハーモニー508はMIDIセグメントとして出力され、音楽的にメロディー506のハーモニーである。
図5には示されていないが、ハーモニーネットワークHNは、和弦シーケンス504を入力として適当に受信することもできるため、メロディー506を調整して、ハーモニー508を和弦シーケンス504と調和させることが可能になる。生成されたハーモニー508も、該当するジョブIDと関連付けてジョブデータベース24に記憶される。
【0136】
和弦シーケンス504、メロディー506及びハーモニー508は同じジョブリクエストではリクエストされてもよく、この場合、同じジョブIDと関連付けてジョブデータベース24に記憶される。
【0137】
各ネットワークの出力はMIDIである場合があるが、必ずしもMIDIである必要はなく、例えばカスタムフォーマット(上記を参照)などの他のデジタル音楽記号フォーマットであってもよい。出力がMIDIではない場合、後で出力をMIDIに変換すると便利である可能性があるが、これは必須ではない。
【0138】
ネットワークは、例えばユーザーが生成したセグメントやライブラリのMIDIセグメントなどの外部MIDIを入力として、これを中心として合成してもよい。
【0139】
ネットワークが合成できる入力のもう1つの例は、ユーザー又はMLで生成できるパーカッションであってもよい。ここで、パーカッションは例えば、合成されたセグメントのリズムを駆動するか、又は特定のある音符に置かれることを強調する(その中、強調/ヴェロシティは合成エンジン2で処理される)。
【0140】
フルスタック:
【0141】
図1は、音楽制作システムの可能な配置を示す概略ブロック図である。音楽制作システムは、4つの層又はコンポーネントで構成される。以下の説明から、各層又はコンポーネントの機能間にある程度の重複がある可能性があることは明らかであり、以下の説明は、音楽制作が音楽制作システムでどのように編成されるかを明確に示す。音楽制作システムは、一連の設
定(詳細は後述)を受信し、
1つの音楽を生成するように動作する。以下では、
1つの音楽は、「トラック」と呼ばれるが、システムは任意の長さ/文字の音楽を制作できる。トラックは、デジタル楽譜記号(例えばMIDI)又はオーディオで楽譜として生成されてもよい。MIDI以外の楽譜フォーマットを使用する場合、それをMIDIに変換すると後の処理で便利である(ただし必須ではない)。そのため、記号楽譜をMIDIに変換する変換層(図示せず)をシステム内で提供することができる。この変換層は、合成エンジン自体の一部を形成する場合もあれば、楽譜を受信しMIDIを使用する目的でMIDIに変換するシステム内の別の層の一部を形成する場合もある。
【0142】
制作管理コンポーネント(コントローラー)13は、以下の方法でシステムの層を管理する。コントローラー13は、内部リクエスト及び外部リクエストの両方を処理し、必要に応じて1つまたは複数の層で機能をアクティブ化して、各リクエストにサービスを提供する。
【0143】
符号2は合成エンジンを示す。合成エンジンは、一連の設定(詳細は後述)を受信し、オーディオトラックにアレンジ及び制作されるMIDIセグメントを生成するように動作する。合成エンジンは、オーディオトラックにアレンジ及び制作される音楽セグメントを記号フォーマットで生成する。合成エンジンはPSMの集合を使用して音楽セグメントを生成する。これらのPSMは既に、特定の音楽スタイルを例示するために選択された音楽トラックのデータセットでトレーニングされる。合成エンジンは入力設定に基づいて、使用するPSMを確定する。
【0144】
符号4はアレンジ層を示す。アレンジ層は、合成エンジン2によって生成されるMIDIセグメントを音楽アレンジにアレンジするジョブを有する。アレンジ層は2段階で動作すると考えることができる。第1の段階で、アレンジ層は、後で説明するアレンジパラメータを受信し、タイミングや必要なシーケンスなどを定義するエンベロープとして、これらのパラメータに従って音楽アレンジを生成する。アレンジ層のアレンジ機能は6として表記される。当該エンベロープは、1つの音楽のアレンジを定義した。後でさらに詳しく説明するように、これらの設定は、制作マネージャーによって合成エンジン2からMIDIセグメントをリクエストするために使用できる。アレンジ層の第2の段階はソート機能8である。ソート機能に従って、MIDIセグメントをアレンジエンベロープに従って、完成した1つの音楽にソートする。MIDIセグメントは、(前述のように)合成エンジンによって提供されてもよく、或いは、合成エンジン2によって予め生成できる適切なMIDIセグメントの既存のライブラリから取得することもできる。制作管理コンポーネント13は、例えば、ライブラリをチェックして、適切な既存のMIDIが利用可能であるかどうかを確認し、利用可能ではない場合、合成エンジン2へリクエストを起動して適切なMIDIを生成する。その代わり、リクエストに応答して合成エンジン2でライブラリのチェックを実行するか、又はライブラリのチェックを完全に省略してもよい。さらに、MIDIセグメントは、後で詳しく説明するように、外部ユーザーによって導入されてもよい。アレンジ層4は、MIDI形式のアレンジされた1つの音楽を提供する。状況によっては、この「オリジナル」の音楽はいくつかの目的に適しているかもしれない。しかしながら、この場合、それは任意の有用な形式で再生できない。そのため、アレンジ層4によって制作される音楽に演奏品質構成を追加するパフォーマンス層10を提供する。
【0145】
アレンジの部分には入力設定操作に基づく決定木がある。この決定木は、人間の専門知識、つまり人間の音楽制作者の専門知識を具体化する。アレンジ層は、設定を使用して一連の時間ソートパーツを含む音楽アレンジ構成を生成し、その後、当該音楽アレンジ構成は合成エンジン(または、例えばライブラリから)にMIDIをリクエストし、MIDIはアレンジ構成によってソートされる。
【0146】
これは如何に1つの音楽に対して長い形式の構造を作成するかの方法のほんの一例に過ぎない。この別個のアレンジ層の代わりに、シーケンスされるMIDIを「不可知論的」に操作し、アレンジエンジン2ではアレンジを合成自体の一部として処理することができる。
【0147】
パフォーマンス層は、MIDIで演奏品質の音楽を出力する。これは、多くのアプリケーションで役立つ。しかしながら、同様に、1つの音楽のオーディオバージョンを必要とする他のアプリケーションもある。そのため、オーディオでレンダリングされた演奏品質の1つの音楽を出力するオーディオレンダリング層12(オーディオエンジン)を提供する。
【0148】
1つの音楽のMIDIからオーディオへの変換又はレンダリングは、多くの異なる方法で行うことができ、これらの方法は、当技術分野で知られているものを含むため、ここで説明しない。
【0149】
上記のように、音楽制作エンジンは、API(アプリケーションプログラミングインターフェース)の形式で実現できるアクセスコンポーネント14を有する。当該アクセスコンポーネントにより、音楽制作システム内での通信を可能にし(具体的に、制作管理コンポーネント13はアクセスコンポーネント14を介して合成エンジン2と通信することができる-下記を参照)、機能を外部ユーザーに提供することもできる。説明のために、音楽制作システムに面するアクセスコンポーネント14の側は、制作管理コンポーネントを介して層間の内部ルーティングを担当し、反対側は、外部ユーザーからの入力及び出力を担当すると仮定する。これは、例示的なものであり、APIは任意の適切な方式で実現することができる。当技術分野でよく知られているように、APIの機能を実現するために、API内のプロセッサーで実行されるソフトウェアを使用してAPIを実現する。
【0150】
APIは、外部ユーザーからジョブリクエストを受信するための少なくとも1つの外部入力16と、完成したジョブを外部ユーザーに返すための少なくとも1つの外部出力18とを有する。また、いくつかの実施形態では、APIは、後述するように、音楽制作システムの内部層の間での通信を可能にする。
【0151】
入力16ではリクエストできるジョブは以下のものを含む。
【0152】
タグへのリクエストはユーザーによって入力でき、当該ユーザーは、音楽トラックを作成するように設定を提供するためのタグリストを検索する。タグは、例えばピアノ、フォーク音楽などの音楽スタイルを含む。以下、単なる例としてのタグのリストが示される。タグはタグメモリ20に保存される。必要に応じて、このようなリクエストは、システム内で利用可能な設定をリクエストするように使用されてもよい。
【0153】
例えば、ムードやジャンルタグなどの異なるタイプのタグを定義することができる。ジャンルタグの例には、ピアノ、フォーク、ロック、環境、映画、ポップ、快適、グループ、ドラムとベース、シンセポップが含まれる。ムードタグの例には、高揚、メランコリック、悲観的、怒り、シンプル、瞑想的、ファンタジー、アクション、感情的、聞き取りやすい、穏やか(Tec)、攻撃的、情熱的、刺激的が含まれる。システムは、ジャンルとムードタグとの特定の組み合わせのみを許可するように配置されてもよいが、これは設計上の選択である。これは、タグの完全なリストではなく、任意の適切なタグのセットを使用でき、これは、システム内で制作及び合成設定におけるタグの役割を選択することを説明するときなどの適切なときに明らかになる。
【0154】
ライブラリクエリは、入力16で提供することができ、ライブラリクエリは、トラック記憶装置22又は代替的にジョブデータベース24に保存されているオーディオトラックに対するページ化リストの検索を生成する。これらは、後述する編集可能なフォーマットで記憶できる。これらは、音楽制作システムによって既に作成されたか又は他の場所からライブラリにアップロードされたトラックである。トラックの作成プロセスで説明するように、それらは後の編集に適した方法で記憶される。
【0155】
トラックのライブラリクエリは、次のパラメータを返す。
ジョブID─識別されたトラックの一意の識別子であり、特に、トラックの編集を可能にする一意のIDである。
タグ─トラックに関連付けられた識別子タイプのタグである。
アセット─アセットのタイプ、即ち、MIDI又はWAFを表す。
継続時間─1つの音楽の長さを表す。曲の作成で、1つの音楽の長さは通常約3分である。なお、様々な目的で1つの音楽を生成でき、また、1つの音楽は任意の適切な継続時間を持つことができる。
【0156】
これらは単なる例であり、リクエストについて、異なる実現で異なるパラメータを返すことができる。
【0157】
入力16は、ジョブを作成するリクエストを受信してもよい。ジョブは異なるタイプであってもよい。
【0158】
第1のタイプのジョブは、オーディオトラックを作成することである。このジョブを実現するために、ユーザーは複数のオーディオトラック作成設定を提供することができ、以下を含む。
音楽スタイル
継続時間─オーディオトラックの長さ
1つまたは複数のタグ─トラックのタイプを定義する
リズム─トラックの音楽リズム
同期ポイント─トラック又は他のイベントで強度が集中する任意の特定の位置、例えば特定のポイントでの特定の楽器入力又は音楽的特徴をオーディオトラックに導入する任意の他のイベント。
強度曲線─同期ポイントの一般化により、オーディオトラックの望ましい強度の変化をより大きい柔軟性で時間の経過に応じた曲線として定義する。
【0159】
これらのパラメータのすべてが必要なわけではない。当該システムは、最小限の情報に基づいて自律的な意思決定を行うことができる。例えば、オーディオトラックに継続時間しか提供されていない場合、システムはオーディオトラックを作成することができる。制作管理コンポーネント13自体は当該イベントのタグ、リズム、及び同期ポイントを確定する。実際に、システムは、設定を入力せずにトラックを生成することができ、トラックリクエストで設定が提供されていない場合、システムは任意の設定を自動的に選択することができる。
【0160】
制作管理コンポーネントは、音楽スタイルに基づいて1つまたは複数の層に使用される設定を生成してもよい。完全なオーディオトラックを生成するときに、以下で詳細に説明するように、タイプに基づいてオーディオ制作エンジン3に使用されるオーディオ制作パラメータと合成エンジン2に使用される合成パラメータを生成する。
【0161】
以下、必要に応じて特定のパラメータについて言及する場合がある。これは単に可能な形態であり、これらのパラメータは設計上の選択とする必要なパラメータである。なお、ユーザーにより提供されていない所望のパラメータをすべて自動的に選択するようにシステムを配置するため、ユーザーが提供するパラメータに基本的な要件はない。
【0162】
第2のタイプのジョブは、作成されるMIDIトラックをリクエストすることである。このジョブについて、少なくとも継続時間、及びオプションである少なくとも1つのタグ、リズム、及び同期ポイントの入力が必要である。或いは、継続時間は、オプションのパラメータであってもよく、継続時間が提供されていない場合、システムは継続時間を自動的に選択することができる。
【0163】
オーディオトラックのリクエストには、オーディオレンダリング層を含む音楽制作システムの全てのコンポーネントを使用して、オーディオでレンダリングされたトラックを生成することが含まれる。この例では、MIDIトラックを作成するリクエストは合成エンジン、アレンジ層、及びパフォーマンス層を使用してMIDIのトラックを生成する。オーディオレンダリング層は使用しない。上記のように、アレンジ層とパフォーマンス層はオプションのコンポーネントであり、当該システムはこれらのコンポーネントなしで実現することができる。例えば、合成エンジン2は、必要に応じて、完全にアレンジされた人間化のMIDIを生成するように配置されてもよい。
【0164】
トラック制作について後述する。
【0165】
第3のタイプのリクエストは、既存のトラックを編集することである。トラックは、以下に説明する方法で、一意のジョブ識別子によって識別されるトラックライブラリに記憶される。ユーザーは編集のためにジョブのIDを提供する必要がある。なお、これは編集が必要なトラックの正しいジョブIDを識別するために前述のライブラリクエリを実行することによって実現できることに注意されたい。ユーザーは、トラックに新しい継続時間を提供することができる。オプションで、リズムと同期ポイントを定義することができる。その出力は既存のオーディオトラックの新しいバージョンであり、新しい設定によって定義されるように編集する。或いは、ユーザーが継続時間を変更せず、オーディオトラックの他(1つまたは複数)の側面を編集したい場合、既存の継続時間を使用することができる(又は、継続時間が提供されていないが、継続時間を変更したい場合、システムは継続時間を自動的に選択するように配置できる)。以下に説明するように、システムが各段階で行った決定に関する十分な情報がトラックIDに対してジョブデータベース24に記憶されているため、システムは編集リクエストを処理することができる。
【0166】
システムは、後で説明するように、MIDIトラックを編集するリクエストを処理するように配置されてもよい。これらは、トラック編集リクエストとほぼ同じ方式で処理できるが、出力はオーディオではなくMIDIである。
【0167】
第4のジョブはMIDIループを作成することである。これは合成エンジンによって実行されるジョブであり、他のジョブと異なるパラメータのセットを受け取ることができる。少なくとも生成のMIDIループの小節の長さ(1、2、4又は8であるが、これは単なる例である)を受信する。或いは、長さはオプションのパラメータであり、長さが提供されていない場合、システムは長さを自動的に選択することができる。また、タイプ、例えばピアノ、フォーク、ロック、映画、ポップ、快適、グループ、ドラムとベース、環境、シンセポップのいずれかを指定することができる。これらは、上記の意味でのタグとして指定できる。例えば、主音数字[0-11]、及び0=C、及び/又は調性を例えば自然性_主要と自然性_次要の1つとして提供することができる。後述するように、合成エンジンはこれらのパラメータに従ってMIDIループを生成することができる。また、MIDIの速度、タイミング、人間化を可能にする有効化パラメータを提供することができる。或いは、これらのパラメーターを個別に有効化/無効化できるように、個別のパラメータを提供することもできる。
【0168】
類似のジョブはオーディオループを作成することである。これは、MIDIループリクエストと類似であるが、制作エンジンに関連する。制作エンジンがMIDIループをリクエストすることによって、それをレンダリングしてループ可能なオーディオを提供することで実現できる。
【0169】
図9は、API 14を実現するためのアーキテクチャの一例を示した。このアーキテクチャのAPI 14の主要な特徴は、内部ジョブリクエストと外部ジョブリクエストの両方を同じ方式で処理できることである。つまり、音楽制作システムの外部からのジョブリクエストと、システム自体のコンポーネントによって引き起こされシステムの他のコンポーネントへ向けられたジョブリクエストの両方である。この場合の特定の例は、合成エンジン2によって提供される「サービスとするMIDI」機能であり、当該機能は、外部ユーザーだけでなく、例えば制作マネージャー13などのシステム自体のコンポーネントにも使用できる。
【0170】
API 14での各着信リクエスト(内部又は外部)はリクエストのタイプに従って多くのジョブキュー31のうちの1つに割り当てられる。この例では、合成ジョブキュー34は、合成エンジン2に結合されるように示される。制作ジョブキュー32とMIDIジョブキュー32Aは、制作管理コンポーネント13に結合されるように示され、これらの2つのキュー32、32Aは、制作管理コンポーネント13によって処理される異なるタイプのリクエストを保持する。制作ジョブキュー32に割り当てられたジョブは、オーディオエンジン12のトラックに関し、MIDIジョブキュー32Aに割り当てられたジョブはMIDIに関し、オーディオエンジン12に関しない。つまり、制作管理コンポーネントは、オーディオリクエストとMIDIリクエストとの両方を処理することができる。
【0171】
あるタイプのリクエストは、制作エンジン3と制作管理コンポーネント13を「バイパス」し、制作エンジン3又は制作管理コンポーネント13を関与させることなく、合成エンジン2によって処理されるように合成ジョブキュー34に割り当てられる。このようなリクエストは、外部装置又は制作管理コンポーネント13から生じ得る。
【0172】
制作管理コンポーネント13によって処理されるリクエストは例えば、トラック全体に対するリクエスト又はトラックを編集するためのリクエストであり(下記を参照)、制作管理コンポーネント13によって処理されるために、オーディオの場合に、制作ジョブキュー32に割り当てられ、MIDIの場合に、MIDIジョブキュー32Aに割り当てられる。以下さらに詳細に説明するように、制作管理コンポーネント13で受信されるそのようなリクエストは、制作管理コンポーネント13に同じAPI 14を介して合成エンジン2へそれ自身の1つまたは複数の内部リクエストをするようにし、これらの内部リクエストは合成エンジン2によって処理されるように合成ジョブキュー34に割り当てられる。
【0173】
図9には示されていないが、API 14が処理できる各タイプのリクエストに対して別個のジョブキューを提供する。従って、実際には複数のオーディオタイプジョブキュー(例えばオーディオ作成とオーディオ編集)と複数のMIDIタイプジョブキュー(例えばMIDI作成とMIDI編集)が制作管理コンポーネント13に結合される場合がある。
【0174】
次に、
図2を参照して、オーディオトラック作成タスクについて説明する。
図2では、円内の数字は、方法のステップを示し、構造の特定の要素を示す参照数字とは異なる。
図2に示されている構造の要素は、
図1で説明されている要素に対応し、
図1に対応する参照数字が付けられている。
【0175】
ステップ1では、人間ユーザーはAPI 14の入力16でジョブリクエスト30を提供することができる。ジョブリクエスト30は原則として、上記の任意のジョブタイプであり得るが、本明細書のここの部分はトラック又はMIDIトラックの作成に関する。上記のように、ジョブリクエスト30は、これらのトラックの作成を定義するための少なくとも1つのパラメータを定義する。或いは、前記のように、ジョブリクエスト30はパラメータを定義せず、当該イベントの全てのパラメータはシステムで自動に選択される。ステップ2では、API 14内では、ジョブ識別子がジョブリクエスト30に割り当てられる。これは、本明細書ではID Aと呼ばれる。次に、当該ジョブを制作マネージャー13に関連付けられた制作ジョブキュー32に割り当てる。ジョブID Aを制作キューに割り当てることはステップ3で示される。
【0176】
ステップ4で、制作マネージャーはトラックを制作するように動作する。制作マネージャー13はアレンジ層4、パフォーマンス層10及びオーディオレンダリング層12にアクセスすることができる。
図2では、パフォーマンス層は、個別に表示されていないが、必要に応じて制作マネージャーが利用できる。制作マネージャー13は制作層で実施される人工知能モデルに従って、アレンジ層4と関連付けられて動作する。これは、決定木で実施され、当該決定木は、人間の専門知識と知識を組み合わせて、オーディオトラックの制作を完了するための制作層をガイドし、但し他の実施形態も可能である。例えば、上記のように、制作エンジンはMLを使用して実現できる。当該決定木により、ステップ5に示すように、制作マネージャー13がアレンジ層4にアクセスする。アレンジ層4は少なくともタイミング及び所望のタイムスタンプ(小節の拍数)を含む音楽アレンジを提供するように動作し、ステップ5aに示すように、アレンジエンベロープを制作マネージャー13に返す。その後、制作マネージャー13は、アクティブ化されてMIDIセグメントをリクエストし、これらのMIDIセグメントは、アレンジ層4によって提供されるアレンジにソートされる。上述のように、これは例として説明された1つの可能な形態に過ぎない。特に、前述のように、当該システムは、アレンジ層4とパフォーマンス層8の一方又は両方を使用せずに実現でき、必要に応じて、これらの層の機能はシステムにおける他の場所で処理され、例えば、合成エンジン2の操作に組み込まれる。当該リクエストは、API入力(ここでは内部API入力17と呼ばれる)を介して加えてもよい。例えば、制作マネージャー13は、例えば、
図2にそれぞれB1、B2、B3として示されるジョブリクエストなどの複数のMIDIジョブリクエストを生成することができる。各MIDIジョブリクエストをAPI 14の内部入力17に加え、API 14はジョブ識別子をMIDIジョブリクエストに割り当て、当該ジョブ識別子はID B1、ID B2及びID B3として表され、ステップ8では、一意の識別子で表記されるこれらのジョブをMIDIジョブキュー34に提供する。識別子は、制作マネージャー13に返される。これは、ステップ7で示される。
【0177】
一意の識別子を持つジョブは、合成エンジン2に割り当てられ、様々なMIDIセグメントの人工知能/機械学習を使用して生成できる。合成エンジンは、上記のようにトレーニングされている。
【0178】
合成エンジン2は、ステップ9に示されるように、MIDIセグメントをジョブデータベース24に出力する。MIDIセグメントは別個のデータベースに記憶されるか、又は、説明しようとする他の完了したジョブと同じジョブデータベースに記憶される。各MIDIセグメントは一意の識別子と関連付けられて記憶されるため、再び呼び出すことができる。次の段落で説明するように、制作マネージャー13は、周期的に、API 14をポーリングしてID B1、ID B2及びID B3によって識別されたジョブが完了したかどうかを確認する。これはステップ10で示されている。それらがアクセス準備ができると、上記のようにソートするためにアレンジ層にそれらを提供する制作マネージャー13に返される。ソートされたセグメントは制作マネージャー13を介して(MIDIトラックが必要な場合)出力に返されるか、又は、オーディオトラックが必要な場合、オーディオレンダリング層12に返される(ステップ12)。
【0179】
この方法でジョブIDを割り当てることは様々な利点がある。リクエストを受信したときに、ジョブIDを当該リクエストに割り当てるため、リクエストが実際に処理される前(リクエストの性質によって、数秒以上かかる場合がある、特にオーディオの場合)、API 14は、ジョブIDを含む当該リクエストへの応答をリクエストのソースにすぐに返すことができる。例えば、オーディオ又はMIDIを実際に生成又は検索する前に、オーディオ又はMIDIへのリクエストを返すことができる。その後、リクエストのソースは、返されたジョブIDを使用してシステムを調べ(必要に応じて繰り返し)リクエストのデータ(例えばオーディオ又はMIDI)の準備ができているかどうかを調べ、準備ができている場合、システムは、リクエストされたデータを応答として返すことができる。これにより、リクエストの処理中に接続を開いたままにしておく必要がなくなり、信頼性とセキュリティの点で有益である。
【0180】
オーディオエンジン:
【0181】
次に、本明細書では説明する音楽制作システムでオーディオを再生する方法について説明する。
図1及び
図2を参照する。オーディオトラックへのリクエストは、上記のAPI 14の入力16で受信できるジョブのタイプの1つである。このコンテキストでは、APIは、オーディオトラックへのリクエストを受信するためのコンピュータインターフェースを提供する。この点について、オーディオトラックは、任意の適切な長さのオーディオ再生音楽である。それが
1つの完全な音楽であると仮定すると、ある意味で、オーディオデータで再生して完全な楽曲として聴くことができる。当該着信リクエストには、ジョブIDが割り当てられている。上記のように、リクエストは、オーディオトラックを作成するための1つまたは複数のパラメータを含むことができる。なお、前記のように、いずれのトラック作成パラメータも指定せずにトラックをリクエストすることができ、この場合、システムは、例えば、デフォルトのパラメータに関するデフォルトのトラック作成プロセスを使用することができる。このようなデフォルトのパラメータは、入力16でのリクエストに応答して、制作管理コンポーネント13で生成される。例えば、デフォルトの継続時間は90秒で事前に設定できる。他のデフォルトの長さも可能である。当該リクエストに基づいて、複数の音楽パーツを確定する。これらは、入力16で提供されるリクエストにおける入力パラメータに基づいて、又は制作管理コンポーネントによって生成されたパラメータに従って、制作管理コンポーネント13で確定される。或いは、音楽パーツは、リクエストを行うユーザーによってリクエスト自体では提供されてもよい。この場合、制作管理コンポーネント13のリクエストから音楽パーツを抽出することができる。これは、音楽制作システムに幅広い柔軟性を提供する。つまり、ユーザーからの入力がない場合、又は、ユーザーによって提供される制約が多くある場合に働くことができ、トラック作成パラメータ及び/又は音楽パーツを含む。ステップS602で音楽パーツの確定が示される。当該リクエストに従ってオーディオ制作設
定も生成される。これはステップS603に示される。ステップS602及びS603が順次又は並行して実行できることは注意されたい。これらは、制作管理コンポーネント又は音楽制作システム内の任意の適切なコンポーネントによって実行できる。
【0182】
ステップS604で、オーディオ制作設定及び音楽パーツはオーディオレンダリングコンポーネントに提供される。なお、デジタル音楽記号フォーマットの音楽セグメントシーケンスはオーディオレンダリングコンポーネントに提供される。当該シーケンスは、合成エンジンによって生成されるか、又は他の場所で取得され、MIDIセグメントの形式である。これらのMIDIセグメントは、本明細書で前述したように生成できるが、必ずしもこのように生成する必要はない。また、MIDIセグメントのアレンジシーケンスをオーディオレンダリングコンポーネント12に提供することができる。当該アレンジ順序は、上述したようなアレンジコンポーネント4から取得してもよいし、合成エンジンとアレンジエンジンの組み合わせによって生成されたアレンジ順序であってもよい。或いは、アレンジされたMIDIシーケンスは、トラックリクエストを行うユーザーによって提供されてもよい。
【0183】
ステップS605で、オーディオレンダリングコンポーネント12はオーディオ制作設定、音楽パーツ、及びMIDIシーケンスを使用して音楽トラックのオーディオデータをレンダリングする。ステップS606で、音楽トラックはAPIコンポーネントの出力ポート18を介して、リクエストを行うユーザーに返される。
【0184】
次に、ステップ603のより詳細な説明を行い、ステップ603では、オーディオ制作設
定を選択する。制作管理コンポーネント13は、1つまたは複数のタグを使用して、
図1で23と表記された設
定のデータベースにアクセスする。1つまたは複数のタグは、入力16で入力されたリクエストで定義されるか、又は入力リクエストにおける情報に基づいて制作管理コンポーネントによって生成されるか、又は制作管理コンポーネントで自動的に生成される。
【0185】
例えば、スタイルパラメータがリクエストで定義される場合、当該スタイルパラメータに適したタグをタグデータベース20からリクエストする。或いは、制作コンポーネント13により、1つまたは複数のタグがランダムに選択されてもよい。設
定データベース23の構成を
図7に示す。各アレンジ設
定データベースオブジェクトが1つまたは複数のタグに関連付けられているため、データベース23はタグを使用して照会することができる。単一のアレンジ設
定オブジェクトに関連付けられるタグの数に制限はない。1つまたは複数のタグを提供して、提供された全てのタグがマークされたアレンジ設
定オブジェクトの全てを返すことによって、アレンジ設
定オブジェクトのデータベースに照会することができる。データベース23にはタグT1及びT2に関連付けられたアレンジ設
定オブジェクトO1が示され、オブジェクトO1は任意の数のタグに関連付けられてもよい。各アレンジ設
定オブジェクトは3組の設
定を含む。一組のアレンジ設
定70、一組の合成設
定72、及び一組のオーディオ設
定74がある。これは単なる例であり、設
定グループの数は増減してもよい。設
定のグループは、システムのアーキテクチャを反映しており、上記のように柔軟に設計できる。例えば、アレンジ設
定70は、アレンジが合成の一部として処理されるように、合成設
定72に組み込まれてもよい。
【0186】
これらのグループは、(1つまたは複数)タグで指示されたタイプに従って完成した音楽セグメントで協働するように定義される。既に説明したように、タグは、ジャンル/ムード/楽器などを定義することができる。制作管理コンポーネント13がデータベース23から呼び出した設
定は音楽の制作を制御するために使用される。各音楽パーツの各グループから設
定の特定の集合を選択するか、又は1つまたは複数の設
定を複数の音楽パーツに適用することができる。
図8を参照して、オーディオ制作に使用される選択フローが示される。特定のタグに使用される1つまたは複数のオーディオ設
定セットから各パーツの楽器を選択する。これは、
図8のクロスハッチングによって示されている。各パーツの楽器を選択する1つの方法は、当該パーツに適した設
定セットから楽器をランダムに選択することである。オーディオ設
定内には、例えば低音、メロディー、ハーモニーなどの各パーツに関連付けられる設
定カテゴリがあり得る。
【0187】
サウンド設定のセットから一つの設定を選択することによって、当該楽器の特定のサウンドを選択する。この選択は、ランダムであってもよい。各サウンドに1つまたは複数のサウンド効果を選択することができる。再び、これは、特定のサウンドに適した一連のサウンド効果からランダムに選択することができる。これらの選択を実現するために、制作管理コンポーネント13は、特定の楽器の特定の部分、特定のサウンド、特定の楽器、特定のサウンド効果に対する適合性に関する知識が埋め込まれた決定木を使用する。
【0188】
このコンテキストでの「サウンド」という用語は仮想楽器のプリセットを指す。仮想計器は、当技術分野における用語であり、ソフトウェアシンセサイザーを指し、仮想計器プリセットとは、仮想計器を構成するための1つまたは複数の設定のセットと一緒になっていることが好ましい特定の仮想計器を指す。仮想楽器プリセットは、特定の仮想楽器と仮想楽器の音色又は品質を定義した。異なる仮想計器プリセットは、同じ又は異なる仮想計器に関してもよい。例えば、ピアノをシミュレートする仮想楽器の場合、仮想楽器をグランドピアノのように鳴らすプリセットと、アップライトピアノのように聞こえる別のプリセットがあり得る。楽器にサウンドを選択するときに、システムはこれらのプリセットから選択する。仮想計器を構成する設定を1つのファイルにまとめることは便利である。
【0189】
タグに関連付けられた合成設定は、MIDIセグメントの出力をトラックに組み込むように制御するために、合成エンジン2に提供できる。タグに関連付けられるアレンジ設定70は、合成エンジンからのMIDIセグメントがタグの支配下でどのようにアレンジされるかを確定するために、アレンジ層4に適用できる。
【0190】
完成したトラックは、着信リクエストに割り当てられたジョブIDとともに、ジョブデータベース24に記憶される。
【0191】
オーディオトラックは、オーディオデータ自体として保存するのではなく、合成エンジン2から出力されたソートされたMIDI及び/又は(1つまたは複数)ソートされていないMIDIループ又は(1つまたは複数)そのセグメントとともに、トラックを生成するために選択する設
定(トラック設
定80)に従って記憶される。その後、ソートされたMIDIを音楽パーツ及び選択されたオーディオ制作設
定とともにオーディオレンダリングコンポーネント12に提供して(
図6のフローのステップS604のように)、トラックを再生成することができる。トラック設
定80は、選択されたオーディオ設
定だけでなく、合成設
定とアレンジ設
定からも構成される。つまり、トラック設
定80には、制作管理コンポーネント13による選択の全てが含まれるため、オーディオトラックを完全に再生するために必要な設
定が全て含まれる。同じトラックを再生するために、これらの記憶されたトラック設
定80は、
図6のステップS604では、同じトラックを作成するために使用することができる。この場合、トラック設
定80は再生性設
定と呼ばれる。
【0192】
図2に戻ると、トラックへのリクエストのコンテキストでは、割り当てられたジョブID(ID A)はトラックの識別子を構成する。トラック設
定80はトラック識別子ID Aと関連付けられてジョブデータベース24に記憶される。さらに、識別子ID B1、ID B2及びID B3はトラック識別子IDAと関連付けられてジョブデータベース24に記憶されるので、トラック識別子ID Aを使用してオーディオトラックを構築するためのMIDIセグメントを検索することができる。これらのMIDIセグメントは、ソートされているか又はソートされていないMIDIセグメント、又は両方の組み合わせであってもよい。ID Aに関連づけられてジョブデータベース24に記憶される情報は、後でオーディオトラックを再生するために使用できるように十分に包括的である。
【0193】
次に、
図11を参照して、既存のトラックを編集するための例示的なプロセスを説明し、ステップS1102では、API 14で編集リクエスト52が受信されることを示している。編集リクエスト52は、編集対象のトラックのジョブID 54と少なくとも1つの新しい設
定56とを含み、トラックは当該新しい設
定に従って編集されるべきである。編集リクエストは実際に、完全に新しい音楽トラックを作成するリクエストであるが、以前のトラックを生成するための設
定及び/又はMIDIセグメントの少なくとも1つを使用する。編集対象のトラックは、オーディオトラック又はMIDIトラックであってもよい。ステップS1104では、編集リクエスト52への応答59をリクエスト52のソースに返す。応答59は、編集リクエスト52自身に割り当てられたジョブID 58を含む。なお、編集リクエスト52自身の当該ジョブID 58は、当該トラックを作成する以前のリクエストに割り当てられた編集対象のトラックのジョブID 54と異なる(当該以前のリクエストはゼロからトラックを作成するリクエストであってもよく、或いは、自身は既存のトラックを編集するリクエストであってもよい)。ステップS1106では、編集リクエスト52は、上記の方式で制作管理コンポーネント13に提供される。編集対象のトラックのジョブID 54を使用し、制作マネージャー13は、ステップS1110で受信したジョブID 54に関連付けられるトラック設
定80を検索するために、ジョブID 54を使用してジョブデータベース24に照会する(S1108)。トラック設
定80にはトラックを作成するためのMIDIセグメントへの1つ以上の参照が含まれる場合、必要に応じて、制作マネージャー13によって検索できる。上記のように、そのような参照は、MIDIセグメントがジョブデータベース24に記憶されるジョブIDの形式であってもよく、或いは、MIDIセグメントが保存される別個のデータベースへの参照であってもよい。この観点から、オーディオトラックの編集バージョンの作成に使用されるトラック設
定がジョブデータベース24から検索された1つ以上のトラック設
定80と、編集リクエスト52で提供される1つ以上の新しい設
定56との組み合わせであるという事実を除いて、当該方法は
図6を参照して説明した方法と同じ方法で実行される。
【0194】
新しい設
定56の一例は、トラック継続時間であり、ユーザーが既存のトラックのより長いバージョン又はより短いバージョンを作成したい場合、ユーザーは当該トラック継続時間を提供することができる。簡単な場合に、全てのオリジナルのトラック設
定80は、オリジナルのMIDIセグメントと共に、トラックの編集バージョンを作成するために使用できるが、オリジナルの継続時間は新しい継続時間に置き換えられる。或いは、新しい継続時間により適する新しいMIDIセグメントを合成することができ、合成エンジン2に対する内部リクエストが含まれる。これは単なる例であり、より複雑なトラック編集が想定される。
図11の例では、編集リクエスト52で1つまたは複数の新しい設
定56が提供されるが、より複雑なシナリオでは、制作マネージャー13は実際に、編集リクエスト52に応答してこのような(1つまたは複数の)新しい設
定56自体を選択することができ、例えば、編集リクエスト52に指示される設
定に基づいて付加設
定を選択するか、又は何らかの他の手段により(1つまたは複数の)新しい設
定を自動的に選択する。
【0195】
図11のステップS1112に示すように、編集リクエスト52に割り当てられたジョブID 58は、80’として表記される編集トラックのトラック設
定と共に、他のリクエストと同様にジョブデータベース24に記憶される。トラック設
定80’は、トラックの編集バージョンを生成するために既に使用された設
定であり、また、上記のように、これらの設
定は、1つまたは複数のオリジナルのトラック設
定80と、上記の方式で編集リクエスト52に応答して確定された(1つまたは複数の)新しい設
定56との組み合わせから構成される。
【0196】
上記の様々なコンポーネント、特に制作管理コンポーネント13、制作エンジン3(即ち、オーディオレンダリングコンポーネント12、パフォーマンスコンポーネント10、及びアレンジコンポーネント4)及び合成エンジン2は、ソフトウェアで実現されるシステムの機能コンポーネントである。つまり、合成システムは、例えば汎用CPU、GPU又はその他の専用処理ハードウェアなどの専用処理ユニット、又は汎用処理ハードウェアと専用処理ハードウェアとの組み合わせなどの、1つまたは複数の処理ユニットを含み、前記1つまたは複数の処理ユニットは、コンピュータ可読命令(コード)を実行することによって、1つまたは複数の処理ユニットに明細書の各コンポーネントの機能を実現させるように配置される。GPUなどの専用処理ハードウェアは特に、制作エンジン2のML機能の特定の部分を実現するのに適しており、MLを使用してこれらの機能を実現するときに、他のコンポーネントを実現することもできる。(1つまたは複数)処理ユニットは、コンピュータ装置又はコンピュータ装置を協調するネットワーク(例えばサーバー又はサーバーネットワーク)で実施できる。
【0197】
図10は、API 14のいくつかの構成を説明する概略ブロック図を示し、コンピュータインターフェース42と、コンピュータインターフェース42に結合されるリクエストマネージャー44とを含む。リクエストマネージャー44は、上記のようにコンピュータインターフェース42で受信されたリクエストを管理する。特に、リクエストマネージャー44は各リクエストをジョブキュー31のうち適切な1つに割り当て、また、一意のジョブ識別子(ID)を各リクエスト(内部リクエストと外部リクエストの両方)に割り当てる。ジョブIDは、後で説明する様々な目的に使用される。API 14は、サーバー(APIサーバー)又はサーバープールとして実現されてもよい。後者の場合、リクエストマネージャー42はサーバープールとして実現され、コンピュータインターフェース42は少なくとも部分的にロードバランサーによって提供でき、当該ロードバランサーは、サーバープールに代わってリクエストを受信し、各リクエストをサーバープール44のサーバーの1つに割り当て、当該サーバーはそれを適切なジョブキューに割り当てる。より一般的には、API 14は、少なくとも1つのコンピュータ装置(例えば、サービス)と、本明細書で説明されるAPI機能を実行するように配置される任意の関連するハードウェアの形態である。コンピュータインターフェース42は、リクエストを送受信するハードウェアとソフトウェアの組み合わせを表し、リクエストマネージャー44は、それらのリクエストを管理するハードウェアとソフトウェアの組み合わせを表す。リクエストは、コンピュータインターフェースのネットワークアドレス、例えば、それに関連付けられるURL又はURIに送信される。API 14は、この目的のために提供される少なくとも1つのWebアドレスを有するWeb APIであってもよい。着信要求を受信するために、1つまたは複数のこのようなネットワークアドレスを提供できる。
【0198】
フィードバックに基づく自動学習
【0199】
このシステムは例えば、ニューラルネットワークなどの機械学習(ML)コンポーネントを後述する合成エンジン2に組み込む。これらは、トレーニング可能なコンポーネントであり、ユーザーがシステムに参加するときに提供したフィードバックに従って学習することができる。
【0200】
基本的な技術は、
図12の符号1200で表される効率的なフィードバックループを利用し、ユーザーはJukedeckのAIソフトウェアとインタラクションしてトラックを作成、聴き、変更し、最終にダウンロードすればするほど、ユーザーデータがシステムにフィードバックされて、音楽を合成するときに、MLコンポーネントがより効率的に完成する。当該ユーザーデータを利用する機能により、ユーザーインタラクションに基づいて基本的な技術を継続的に改善することができる。
【0201】
そのため、例えば合成エンジン2や制作エンジン3などのJukecapoシステムの少なくとも1つのコンポーネントは、システムのユーザーから収集された情報に基づいてその操作を調整するように配置できる。この情報は、例えばトラック又はMIDI作成リクエスト、検索リクエスト、編集リクエスト、ダウンロードリクエストなどの様々なソースから収集することができ、又は、システムのユーザーから取得された任意の他の情報源から収集することができる。
【0202】
適用
【0203】
当該技術は、音楽が使用されるあらゆる状況に適用することができ、それを、視覚的/没入型メディア(例えば、ビデオ、ソーシャルメディア、テレビ、広告、ゲーム、バーチャルリアリティなど)に使用されるオーディオ、個人的な聴取(例えば、音楽ストリーミング、ラジオなど)及び音楽作成ツール(例えば、音楽制作ソフトウェア)を含む複数のカテゴリに関連付ける。
【0204】
視覚的/没入型メディア(例えば、ビデオ、ソーシャルメディア、広告、ゲーム、AR/VRなど)
【0205】
ユーザーが作成したビデオ、ビデオ広告、ゲーム、拡張現実コンテンツやバーチャルリアリティコンテンツなど、以前よりも多くのコンテンツが作成される。しかしながら、このコンテンツに音楽を探すことは伝統的に非常に困難であり、音楽は通常高価であり、権利が制限され、音楽を問題のコンテンツに合わせるために手動で編集する必要がある。
【0206】
本技術はこれらの問題を解決し、低コストで明確な権利、及びパーソナライズされたコンテンツを大規模に提供する。さらに、様々なデータ入力に応答してトラックを作成するシステムの機能は、視聴覚体験のまったく新しい領域を開き、音楽の好み(ジャンル、リズムなど)、状況データ(ムード、時刻など)、人口統計データ(場所、年齢、性別など)の入力に基づいて、パーソナライズされた音楽をコンテンツの消費者に提供できるようにし、これにより、コンテンツの効率を大幅に向上させる。
【0207】
また、自動音楽制作エンジン3が事前に再生された人間が合成したステムを再アレンジする能力は、既存の制作ライブラリ内の人間が合成した曲をユーザーのニーズに適合することができることを意味する。例えば、長さの異なる複数のバージョンのトラックを自動的に生成することができる。
【0208】
パーソナライズされたユースケース
【0209】
1つのユースケースは動的な音楽作成であり、当該動的な音楽作成により、各ユーザーごとに音楽の好みに応じて独特のパーソナライズされた音楽を生成することができ、当該独特のパーソナライズされた音楽は、ムード、時間帯、場所、その他のコンテキスト入力など、他の様々な要因の影響を受ける。また、本技術により、音楽はこれらの要因にリアルタイムで反応することができる。
【0210】
音楽作成ツール(例えば音楽制作ソフトウェア)
【0211】
従来から、音楽は非常に複雑なため、音楽の作成は主に専門家の分野で行われる。時間の経過とともに、継続的な技術の進歩(例えばシンセサイザー、デジタルオーディオワークステーションなど)により、より多くの人々が音楽制作プロセスに参加できるようになっている。この技術はさらなる進歩であり、音楽にあまり慣れていない人に(例えばメロディーのハーモニーなど)音楽的な支援を提供したり、音楽に慣れた人に音楽のインスピレーションを提供したり、効率を高めたりするために使用できる。
【0212】
まとめ
【0213】
ここで説明する動的な音楽作成機能は、次の目的で使用できる。様々なタイプのコンテンツ及び様々なシナリオ(例えば、ビデオ、広告、ビデオゲーム、小売など)に対してトラックを提供し、(ii)リスナー固有の要因に動的に応答できる、従来の音楽配信チャネル(ストリーミングサービスなど)を介して配信するためのトラックを提供し、(iii)作成プロセス中にミュージシャンに役立つツールを提供する。
【0214】
上記は特定の実施形態に関して説明したが、これらは網羅的ではない。本発明の範囲は、説明された実施形態によって限定されず、添付の特許請求の範囲によって限定されるべきである。