私はしばらくの間、コンテンツの手続き型生成に多くの考えを入れてきましたが、手続き型音楽の実験はこれまで見たことがありません。モデル、アニメーション、テクスチャを生成するための素晴らしいテクニックがありますが、音楽はまだ完全に静的であるか、単純に階層化されたループ(Sporeなど)です。
そのため、私は最適な音楽生成技術を考えており、他の人が何を考えているのか興味があります。以前にそれを考慮していなくても、何がうまくいくと思いますか?回答ごとに1つのテクニックを入力してください。可能な場合は例を含めてください。この手法では、既存のデータを使用するか、または何らかの入力(ムード、スピードなど)で音楽を完全にゼロから生成できます。
セルオートマトン- 読み取り 。
また、試してみることもできます here 。
編集:
rakkarageは別のリソースを提供しています: http://www.ibm.com/developerworks/Java/library/j-camusic/
最も成功したシステムは、おそらくいくつかの技術を組み合わせます。すべてのジャンルの音楽でメロディー、ハーモニー、リズム、ベースシーケンスを生成するのに適したテクニックを見つけることはできないと思います。
マルコフチェーン は、たとえば、メロディおよびハーモニックシーケンスの生成に適しています。この方法では、既存の曲を分析してチェーン遷移確率を構築する必要があります。マルコフ連鎖の本当の美しさは、状態があなたが望むものであることができるということです。
ニューラルネットワーク は 時系列予測 (予測)に適しています。つまり、既存のポピュラーなメロディ/ハーモニーに対して訓練された場合に、音楽シーケンスを「予測」するのに等しく適しています。最終結果は、マルコフ連鎖アプローチの結果と同様になります。メモリフットプリントを削減する以外に、マルコフチェーンアプローチに対する利点は考えられません。
ピッチに加えて、生成された音符または和音のリズムを決定するための期間が必要になります。この情報をマルコフ連鎖状態またはニューラルネットワーク出力に組み込むか、個別に生成し、独立したピッチシーケンスとデュレーションシーケンスを組み合わせることができます。
遺伝的アルゴリズム を使用して、リズムセクションを進化させることができます。単純なモデルでは、バイナリ chromosome を使用できます。最初の32ビットはキックドラムのパターンを表し、2番目の32ビットはスネア、3番目の32ビットは閉じたハイハットなどを表します。この場合の欠点は、新しく進化したパターンの適合性を評価するために継続的な人間のフィードバックが必要なことです。
エキスパートシステム を使用して、他の手法で生成されたシーケンスを検証できます。このような検証システムの知識ベースは、おそらく優れた音楽理論の本やWebサイトから削除できます。 Ricci Adams ' musictheory.net を試してください。
これらの手法に関する50年以上の研究がありますが、コンピューター音楽やアルゴリズムによる作曲の歴史に精通していない開発者は見落としがちです。これらの問題に対処するシステムと研究の多数の例がここにあります。
簡単でやや効果的なアルゴリズムは、1/fノイズ、別名「ピンクノイズ」を使用して、音長から音長と音符を選択することです。これは音楽のように聞こえるので、良い出発点になります。
より良いアルゴリズムは、「マルコフチェーン」を使用することです。いくつかのサンプル音楽をスキャンし、確率の表を作成します。最も簡単なケースでは、CがAに続く可能性が20%のようなものになります。これを改善するには、過去の数音のシーケンスを見てください。たとえば、「CAB」は15%にB 4%の後にBbなどが続く可能性があります。その後、前に選択したメモの確率を使用してメモを選択します。この非常に単純なアルゴリズムは、かなり良い結果を生成します。
Dmitri Tymoczkoには興味深いアイデアと例があります:
http://music.princeton.edu/~dmitri/whatmakesmusicsoundgood.html
私のソフトウェア は、進化論を応用して音楽を「成長」させます。このプロセスは、Richard Dawkinsの The Blind Watchmaker プログラムと似ています-MusiGenesisは音楽要素をランダムに追加し、ユーザーは追加された各要素を保持するかどうかを決定します。アイデアは、あなたが好きなものを維持し、正しく聞こえないものを捨てることであり、それを使用するために音楽的なトレーニングをする必要はありません。
インターフェースは吹きますが、古いです-私を訴えます。
私はいつもiMuseシステムを使用した古いLucasartsゲームが好きでした。iMuseシステムはゲームの終わりのないリアクティブサウンドトラックを作成し、非常に音楽的でした(ほとんどがまだ作曲家によって作成されたため)。スペック(特許を含む)はこちらで見つけることができます: http://en.wikipedia.org/wiki/IMUSE
任天堂は、iMuseに似たアプローチを使用して、オンザフライで音楽を作成したり影響を与えたりする唯一の会社のようです。
あなたのプロジェクトが非常に実験的でない限り、私はcomposer-本当の人間composerはアルゴリズムよりもはるかに音楽的で聞き取りやすい結果を生み出します。
詩を書くことと比較してください:非常に前衛的な音の簡単でない詩を簡単に生成することができますが、シェイクスピアをアルゴリズムで複製することは、穏やかに言えば困難です。
非退屈な手続き型音楽の生成に関する研究はさかのぼります。 Computer Music Journalの新旧の問題を閲覧 http://www.mitpressjournals.org/cmj (実際のドメイン名はありませんか?) 、ビット遊牧民と学術研究者。大手書店で見つけることができるいくつかの雑誌のようなふわふわしたレビューとインタビューのぼろきれです。
SoundHelix(http://www.soundhelix.com)をご覧になりましたか?これは、オープンソースJavaきれいな音楽を生成するアルゴリズムランダム音楽作成のフレームワークです。SoundHelixは、スタンドアロンアプリケーション、Webページに埋め込まれたアプレット、JNLPベースのアプレットとして使用できます。または、独自のJavaプログラムに含めることができます。
SoundHelixで生成された例は、ここにあります: http://www.soundhelix.com/audio-examples
このような大きなテーマ。 iPadアプリ、Thicket、またはmorganpackard.comのRippleソフトウェアをご覧ください。私の経験では、動的な音楽生成に対するアカデミックなアプローチのほとんどは、アカデミックに聞こえるものを思い付きます。もっと成功したものは、クラブ/エレクトロニカの世界の端にあると思います。この点でモノレイクは私のヒーローです。非常に聞き取りやすいもの、非常に多くのコンピューター生成。私自身の音楽も悪くありません。 Paul Lanskyの「Alphabet Book」は、特に彼がアカデミックな男であることを考えると、非常に聞き取りやすいアルゴリズム音楽の素晴らしい例です。
本 Algorithmic Composition は、使用されるいくつかの方法の優れたツアーです。
「対象となるトピックは、マルコフモデル、生成文法、遷移ネットワーク、カオスと自己相似性、遺伝的アルゴリズム、セルオートマトン、ニューラルネットワーク、人工知能です。」
この幅広いトピックの出発点としては適切ですが、各方法がどのように機能するかについては詳しく説明していません。それぞれの概要を説明していますが、それらについての知識がまだない場合には不十分です。
私が検討してきた手法は、小節までの小さな音楽パターンを作成することです。これらのパターンに「興奮」、「強烈」などの感情識別子をタグ付けします。状況に合わせて音楽を生成する場合は、これらのタグに基づいていくつかのパターンを選択し、演奏する楽器を選択します。楽器に基づいて、パターンを組み合わせる方法を見つけます(たとえば、ピアノでは、手のスパンに応じてすべてを一緒に演奏できる場合があります。ギターでは、連続してノートを演奏できます)、それをPCMにレンダリングします。 。さらに、キーの変更、速度の変更、エフェクトの追加などができます。
あなたが望んでいるものとはまったく異なりますが、私は Content Based Music Similarity と呼ばれるDJセットの自動生成を見た人を知っていました。
音楽がどのように結びついているかについてのより深い理論に興味があるなら、 Bill Sethares site にはいくつかの興味深い工夫があります。
私は、コペンハーゲン大学-CS学科の「プログラミング言語の理論と実践」研究グループの このプロジェクト提案-"8.1 "を検討しています。
8.1音楽コーパスの自動収集と統計分析
シートミュージックの従来の分析は、同じcomposerまたは同じ時代の他の作曲家。
音楽の従来の自動分析では、ほとんど楽譜を扱いませんでしたが、信号分析と機械学習技術の使用に焦点を合わせて、たとえば気分やジャンル内で抽出および分類しました。対照的に、DIKUの初期の研究は、楽譜の分析の一部を自動化することを目的としています。付加価値は、手作業では簡単に行うことができず、機械学習技術では有意義に分析できない大量の楽譜から情報を抽出できる可能性です。
これは-私が見るように-生成されたデータ-私が想像する-あなたの質問の反対方向であり、音楽の手続き型生成のいくつかの例で使用できます。
私は手続き型音楽用のPythonモジュールに取り組んでいます。ノート、スケール、コード構成について知っていることをプログラミングし、それらからコンテンツをランダムに生成できるようにしました。特に主題をよりよく理解している人によって、そのようなシステムが教えることができる理論とパターンがもっとあると確信しています。そして、それらのシステムを遺伝的アルゴリズムまたはランダム化コンテンツ生成の制約として使用できます。
私の実装を調べることができます here 、特にランダムに生成されたリードの例が役立ちます。コードの進行をしっかりと理解している人は、そのようなテクニックから曲の構造を作成し、そのような制約のあるランダムなメロディーを実装できます。私の音楽理論の知識はそこまで拡張されていません。
しかし基本的には、生成したい種類の音楽の理論をエンコードし、その理論の範囲を手続き的に探索するためのアルゴリズムの制約として使用する必要があります。
90年代後半に、Microsoftは "Interactive Music Control"と呼ばれるActiveXコントロールを作成しました。残念ながら、彼らはプロジェクトを放棄したようです。
私の意見では、生成音楽は厳密な選択プロセスを経て初めて機能します。アルゴリズム音楽の先駆者であるデイビッド・コープは、彼のアルゴリズム(主にマルコフ連鎖ベースだと思います)から何時間もの音楽出力を経て、実際にうまくいくいくつかを選び出しました。
この選択プロセスは、特定の音楽スタイルの特性をモデリングすることで自動化できると思います。たとえば、「ディスコ」スタイルは、バックビートにスネアのあるオフビートとドラムパートを特徴とするベースラインに多くのポイントを付与しますが、非常に不協和なハーモニーのポイントを差し引きます。
事実、作曲プロセスは非常に多くの慣用的な慣行で満たされているため、その分野の特定の知識なしにモデル化することは非常に困難です。