手続き型音楽生成手法[終了]


89

私はしばらくの間、手続き型のコンテンツの生成に多くの考慮を払ってきましたが、手続き型音楽の実験はあまり見たことがありません。私たちはモデル、アニメーション、テクスチャを生成するための素晴らしいテクニックを持っていますが、音楽はまだ完全に静的であるか、単にレイヤードループ(例:Spore)です。

そのため、最適な音楽生成手法を考えていて、他の人の心に興味があります。これまで考慮していなかったとしても、何がうまくいくと思いますか?回答ごとに1つのテクニックを使用し、可能な場合は例を含めてください。この手法では、既存のデータを使用するか、または何らかの入力(気分、速度など)で音楽を完全にゼロから生成できます。


19
最後に、実際にプログラミング/作成/音楽を生成することについての音楽の質問!:D
Oddmund 2008年

回答:


28

セルラーオートマトン- 読み取り

こちらからお試しいただくこともできます

編集:

rakkarageは別のリソースを提供していますhttp : //www.ibm.com/developerworks/java/library/j-camusic/


1
Wolframはとても賢いです!この種のものをアクセスしやすくする素晴らしい仕事...
defmeta 2008

私はそれを私のUbuntuボックスで動作させることができませんでした。:(
カルマリウス


これの問題は、それが12トーンシステムに閉じ込められていることです。真の音楽生成アルゴリズムは、通常の計測より優れており、無料のハーモニックトーンコントロールを備えています。ピアノは、当時の標準として合意された特定のトーンシステムで設計されました。それでも、12トーンシステムは当時としては素晴らしいものでした。
ティモシースワン

42

最も成功したシステムはおそらくいくつかの技術を組み合わせたものです。あらゆるジャンルの音楽にわたって、メロディー、ハーモニー、リズム、ベースシーケンスの生成にうまく機能する1つのテクニックが見つかるとは思えません。

たとえば、マルコフチェーンは、メロディックシーケンスおよびハーモニックシーケンスの生成に適しています。この方法では、チェーン遷移確率を構築するために既存の曲を分析する必要があります。マルコフ連鎖の本当の美しさは、状態があなたが望むものであり得るということです。

  • メロディーの生成には、キーに関連するノート番号を試してください(たとえば、キーがCマイナーの場合、Cは0、Dは1、D#は2など)
  • ハーモニーを生成するには、コードのルート、コードのタイプ(メジャー、マイナー、ディミニッシュ、オーグメントなど)とコードの反転(ルート、最初または2番目)のキー相対ノート番号の組み合わせを試してください

ニューラルネットワークは、時系列予測(予測)に適しています。つまり、既存の人気のあるメロディー/ハーモニーに対してトレーニングされたときの音楽シーケンスを「予測」するのにも等しく適しています。最終結果はマルコフ連鎖アプローチの結果と同様になります。私は、メモリフットプリントを削減する以外に、マルコフチェーンアプローチに勝る利点は考えられません。

ピッチに加えて、生成されたノートまたはコードのリズムを決定するための継続時間が必要になります。この情報をマルコフ連鎖状態またはニューラルネットワーク出力に組み込むか、個別に生成して、独立したピッチと継続時間のシーケンスを組み合わせるかを選択できます。

遺伝的アルゴリズムを使用して、リズムセクションを進化させることができます。単純なモデルでは、最初の32ビットがキックドラムのパターン、2番目の32ビットがスネア、3番目の32ビットがクローズドハイハットなどのバイナリ染色体を使用できます。この場合の欠点は、新しく進化したパターンの適合性を評価するために継続的な人間のフィードバックが必要になることです。

エキスパートシステムは、他の技術によって生成されたシーケンスを確認するために使用することができます。このような検証システムの知識ベースは、おそらく優れた音楽理論の本やウェブサイトから引き上げることができます。リッチアダムスのmusictheory.netをお試しください。


10

これらの手法については50年以上の研究があり、コンピュータ音楽の歴史やアルゴリズムの構成に精通していない開発者には見過ごされがちです。これらの問題に対処するシステムと研究の多数の例がここにあります:

http://www.algorithmic.net


7

簡単で多少効果的なアルゴリズムは、1 / fノイズ、つまり「ピンクノイズ」を使用して、音階からデュレーションとノートを選択することです。これは一種の音楽のように聞こえ、良い出発点となります。

より優れたアルゴリズムは、「マルコフ連鎖」を使用することです。いくつかのサンプル音楽をスキャンして、確率の表を作成します。最も単純なケースでは、CがAに続く可能性が20%のようなものになります。これを改善するために、過去のいくつかのノートのシーケンスを見てください。たとえば、「CA B」はBが続く可能性が15%です。 4%の後にBbなどが続く可能性があります。次に、以前に選択したノートの確率を使用してノートを選択します。この驚くほど単純なアルゴリズムは、かなり良い結果を生成します。

音楽生成のためのマルコフ連鎖



4

私のソフトウェアは、応用進化論を使用して音楽を「成長」させます。プロセスは、リチャードドーキンスのThe Blind Watchmakerに似ていますプログラムに似ています。MusiGenesisが音楽要素をランダムに追加し、ユーザーは追加された各要素を保持するかどうかを決定します。アイデアは、好きなものをそのままにして、正しく聞こえないものを捨てることであり、それを使用するために音楽のトレーニングを受ける必要はありません。

インターフェースが壊れるが、それは古い-私を訴えなさい。


4

私は、iMuseシステムを使用した古いLucasartsゲームを常に気に入っていました。これは、ゲームの終わりのない反応的なサウンドトラックを生成し、非常に音楽的でした(ほとんどが作曲家によって作成されたため)。仕様(特許を含む)は次の場所にあります。 http //en.wikipedia.org/wiki/IMUSEに。

任天堂は、iMuseと同様のアプローチを使用して、その場で音楽を作成または影響を与える唯一の会社のようです。

プロジェクトが非常に実験的でない限り、作曲家の使用を放棄しません。本物の人間の作曲家は、アルゴリズムよりもはるかに音楽的で聴きやすい結果を生み出します。

詩を書くのと比べてみてください。非常に前衛的に聞こえる非情緒的な詩を簡単に生成できますが、アルゴリズムを使ってシェイクスピアを複製することは、穏やかに言えば困難です。


非常に真実ですが、ユーザーは同じ5つの「素晴らしい」トラックよりもゲームプレイに反応する「まあまあ」または「まともな」音楽に何度も何度も興味を持っていると思います...
RCIX 2009年

@RCIX:iMuseシステムでゲームをプレイしたことがありますか?それはたくさんの事物に反応し、必要に応じて非常に微妙または明白ですが、人間の作曲家によって書かれた音楽を使用します。まったく新しい音楽を生成することはありませんが、これまでに聞いた音楽はありませんが、手がかりの間で素晴らしいトランジションを行い、アレンジを変更し(新しい楽器を持ち込み、他の楽器をブレンドし)、スピードを上げたり下げたりすることができます。 。これは「同じ5つの素晴らしいトラックを何度も何度も」とはかけ離れています。私はそれを「現時点でのゲームの気分に合うように形作られた音楽の1つの連続したストリーム」と呼びます。
ガルガモン2009年

3

SoundHelix(http://www.soundhelix.com)をご覧になりましたか?それはかなりランダムな音楽を生成するアルゴリズムのランダムな音楽作成のためのオープンソースのJavaフレームワークです。SoundHelixをスタンドアロンアプリケーションとして、Webページに埋め込まれたアプレットとして、JNLPベースのアプレットとして、または独自のJavaプログラムに組み込むことができます。

SoundHelixで生成されたサンプルはここにあります:http : //www.soundhelix.com/audio-examples


3

退屈でない手続き型音楽の生成に関する研究は、はるか昔に遡ります。Computer Music Journalの古い問題と新しい問題を 参照してください 。主要な書店で見つけることができるいくつかの雑誌のような、ふわふわしたレビューやインタビュー雑巾ではありません。


この雑誌に関する私の知識は、私が数年前に失効したサブスクリプションに基づいています。私はそれがまだ良いと思います!
DarenW 2008年

2

そのような大きな主題。morganpackard.comにある私のiPadアプリ、Thicket、または私のRippleソフトウェアをご覧ください。私の経験では、ダイナミックな音楽を生成するための学術的なアプローチのほとんどは、確かに学術的なものを生み出しています。より成功したものはクラブ/エレクトロニカの世界の周辺にあると思います。この点でMonolakeは私のヒーローです。非常に聞き取りやすいもので、コンピュータで生成されたものです。私自身の音楽も悪くありません。Paul Lanskyの「Alphabet Book」は、特に彼が学者であることを考えると、非常に聞き取りやすいアルゴリズム音楽の良い例です。


1
また、ミュージシャンが作品を作成するために使用するツールを取り巻くコミュニティ(Pure Data、SuperCollider、Max)も確認してください。私は、概念的に興味深いテクニックを探すことから始めるのではなく、好きな作品を持ち、そこから逆に活動するミュージシャンを見つけることから始めます。
morgancodesは

1

私が検討してきたテクニックは、小節までの小さな音楽パターンを作成することです。これらのパターンには、「興奮」、「強烈」などの感情IDでタグ付けします。状況に応じて音楽を生成する場合は、これらのタグに基づいていくつかのパターンを選択し、演奏したい楽器を選択します。楽器に基づいて、パターンを組み合わせる方法を考えます(たとえば、ピアノでは、ハンドスパンによっては、すべて一緒に演奏できる場合があります。ギターでは、ノートをすばやく連続して演奏できます)。その後、PCMにレンダリングします。 。さらに、キーの変更、速度の変更、エフェクトの追加などを行うことができます。


1

あなたが説明している具体的な手法は、トーマスドルビーが10年または15年前に取り組んでいたものですが、彼がそれを何と呼んだか思い出せないので、良い検索語を与えることはできません。

しかし、参照このウィキペディアの記事とこの Metafilterページを。


1
あなたは「ジェネレーティブ・ミュージック」と「コアン」というプログラムを考えています。
MusiGenesis 2008年

1

本のAlgorithmic Compositionは、使用されるいくつかの方法の良いツアーです:

「対象となるトピックは、マルコフモデル、生成文法、遷移ネットワーク、カオスと自己相似性、遺伝的アルゴリズム、セルオートマトン、ニューラルネットワーク、人工知能です。」

これは、この幅広いトピックの良い出発点ですが、各メソッドがどのように機能するかを詳しく説明していません。それはそれぞれの概要を提供しますが、それらについてまだ知識がない場合は十分ではありません。


0

90年代後半に、Microsoftは「インタラクティブミュージックコントロール」と呼ばれるActiveXコントロールを作成しました。残念ながら、彼らはプロジェクトを放棄したようです。


それは、それが作成した音楽が完全に吹いたためです。これは、アルゴリズムで作曲された音楽のかなり一般的な特性です。
MusiGenesis 2008年

上記の@thekidderで参照されているWolfram Tonesプロジェクトは、吹き飛ばさないことに非常に成功しています。通常のrnd noodlingを期待していました...
defmeta 2008



0

コペンハーゲン大学のCS部門の「プログラミング言語の理論と実践」研究グループの「8.1」から、このプロジェクトの提案を検討してきました。

8.1音楽コーパスの自動収集と統計分析

楽譜の従来の分析は、同じ作曲家または同じ時期の他の作曲家による他の作品のしばしばあいまいな比較の文脈で設定された、1つの作品のリズム、コードシーケンス、およびその他の特性を分析する1人以上の人で構成されます。

従来の音楽の自動分析では、楽譜はほとんど扱われていませんでしたが、信号分析と機械学習技術を使用して、たとえば気分やジャンル内で抽出して分類することに重点が置かれていました。対照的に、DIKUの初期の研究は、楽譜の分析の一部を自動化することを目的としています。付加価値は、手作業で簡単に行うことができず、機械学習手法で有意義に分析できない大量の楽譜から情報を抽出する可能性です。

これは、私が見ているように、あなたの質問とは逆の方向です。生成されたデータ(おそらく私は想像します)は、手続き型の音楽生成のいくつかのインスタンスで使用できます。


0

私の意見では、生成的な音楽は、厳格な選択プロセスを経て初めて機能します。アルゴリズム音楽のパイオニアであるデビッドコープは、彼のアルゴリズム(主にマルコフチェーンベースであると思う)から何時間もの音楽出力を行って、実際にうまくいったいくつかを選び出しました。

この選択プロセスは、特定の音楽スタイルの特性をモデル化することで自動化できると思います。たとえば、「ディスコ」スタイルは、バックビートにスネアを備えたオフビートとドラムパートを特徴とするベースラインに多くのポイントを与えますが、非常に不協和なハーモニーにはポイントを差し引きます。

実際のところ、音楽の作曲プロセスは多くの慣用的な慣習で満たされているため、特定の分野に関する知識がなければモデル化することは非常に困難です。


0

私は手続き型音楽用のPythonモジュールに取り組んでいます。ノート、スケール、コード構成について知っていることをプログラムしたところ、それらの制約からコンテンツをランダムに生成できるようになりました。そのようなシステムを、特に主題をよりよく理解している人が教えることができるより多くの理論とパターンがあると私は確信しています。次に、これらのシステムを遺伝的アルゴリズムまたはランダム化されたコンテンツ生成の制約として使用できます。

ここで私の実装を確認できます。特に、ランダムに生成されたリードの例が役立つ場合があります。コード進行をしっかりと理解している人は、そのようなテクニックから曲の構造を作成し、そのような制約されたランダムなメロディーを実装することができます。私の音楽理論の知識はそれほど遠くに広がりません。

ただし、基本的には、生成する音楽の種類の理論をエンコードし、その理論の範囲を手続き的に探索するためのアルゴリズムの制約として使用する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.