2009-07-24 19 views
5

私は自動音楽制作に興味があります。私は多数の1-barアルペジオ(単純化のために固定長の音符列)を与えられ、それが学習した内容に基づいて独自のシーケンスを生成するプログラムについて考えていました。音楽の模倣のためのアルゴリズム?

まず、文字(digram?trigram?)frequency analysisを使用し、音符のピッチにのみ適用し、頻度の確率に基づいてシーケンスを生成することができます。

あなたが知っている高度なアルゴリズムはありますか?音楽シーケンスについて明示的に教えられていますか?

答えて

6

ウィキペディアのアルゴリズム合成に関する記事は優れたプライマーです。アルゴリズム音楽制作、著名な作曲家、ブックリファレンス、アルゴリズム構成ソフトウェアに使用されるモデルのいくつかについて説明します。ミュージシャン自身とソフトウェア工学の主要なので

http://en.wikipedia.org/wiki/Algorithmic_composition

+0

さまざまなフラクタルとソートのアルゴリズムがミュージカルに聞こえる傾向があります。 – Quickredfox

2

既存の統計的分析は、平均的な音楽につながります。面白いことはほとんどありません。なぜなら、分析したものの共通の機能をすべて再現する傾向があるからです。

音楽は多次元です。興味のあるディメンションの一部またはすべてを、明確に分析できます。ピッチ、テンポ、音符のシーケンス、ハーモニック・プログレッション、音量の変更、何でも。すべて。

音楽は微妙で複雑なので、分析するのにもっと何かがあります。

AFAIK(私の息子は作曲家です)もっと面白いのは、合理的に特徴的な音楽を生み出す独自のアルゴリズムを発明することです。

ここに私の息子が指定したものがあります。それはその作品が作り上げた48の音楽イベントのシーケンスを生成します。

#!/usr/bin/env python 
""" 
there are 8, 3-note sets. 
each one can occur on 3 different beats. 
each pitch of the 3 note set can be in one of 3 octaves and it can either be a harmonic or a fingered note. 
""" 
import random 

noteSetChoices = [ "C-E-G", "C-F-A", "C-E-A", "D-F-A", "D-F-B", "D-G-B", "E-G-B", "F-A-C" ] 
beatChoices= [ "1 - - -", "- 2 - -", "- - - 4" ] 
octaveChoices= [ 1, 2, 3 ] 
techniqueChoices= [ 'Fingered', 'Harmonic' ] 

for n in range(48): 
    note= random.choice(noteSetChoices) 
    beat= random.choice(beatChoices) 
    octave= random.choice(octaveChoices) 
    technique= random.choice(techniqueChoices) 
    print octave, note, technique, beat 
+0

Sporeの音楽はどうですか?私は音楽が自動生成されていると確信しています。 –

+0

Mmmmh、これはあなたがすでにジャンルカノンを知っていることを意味し、他の曲からそれらを抽出しません。 – janesconference

+0

@ janesconference:私は実際にスクワットを知らない。私はベースプレイヤーなので、ちょっと分かります。私の息子は作曲家です。 –

4

、私はここにいくつかのクールな光を当てることができhtink:大きな何かを作ることに自分自身と計画が周りに基づき、私は、件名に多くの作業を行ってきたPをこれは将来です

アルゴリズムを書くときには、問題をソートする際にソートされたリストを持つなど、解決策を見つけることが目標です。アルゴリズム音楽構成では、解決策は楽曲である楽曲や構造などを持っていることです(通常は)。

解決策(問題あり)の問題は、目的だけでなく解決策大いに開いている。ソートアルゴリズムでは、リストをソートする方法は1つだけです。音楽の構成では、何百万という楽しい歌が/あなたの目標がwhatevrです。

したがって、決定的な解決策が見つからない場合は最適なアルゴリズムが必要ですが、最適な解決策が必要です。私の提案は遺伝的アルゴリズムなどです。遺伝的アルゴリズムは、さまざまな最適解のプールを作成できるため、優れています。

メロディーのGA、リズムのGA、構造のGAなど、パートごとに分割する必要があります。必要に応じてフィットネス機能を設計します。

もちろん、これは問題の唯一の解決策です。前にリストされたウィキペディアのリンクが多くあり、素晴らしいスタートです。

私はチェックアウトをお勧めします: ジェンジャム:即興ジャズ遺伝的アルゴリズムはsolos- http://www.it.rit.edu/~jab/GenJam.html

を交換するように設計されており、この本は非常に啓発的である:http://www.springer.com/computer/information+systems/book/978-1-84628-599-8

は、私は別の楽しい方法は、神経となり仮定ネットワーク....しかし、それらのセットを与えることは、おそらく少しの問題になります....それはもっと多くの仕事です。

とにかく、あなたのベンチャー企業での幸運:P

+0

また、音楽の構成とハーモニーを勉強することで、フィットネス機能の設計に役立ちます。 – RyanCacophony

0

それは本当にあなたが音楽の規則を知っていれば役立ちますので、どのように曲を構成する人間を教えるために書かれた本や記事をお読みください。あなたは素晴らしいアイデアを得るでしょう。

今のペダルポイントを投げてから緊張を作りましょう。 2つの異なる機器間のコールレスポンスの古くからの技術を使用してください。

1

マルコフ連鎖は、一般に、1つのバーよりも長いシーケンスで作業することを意味しますが、入力に似た音楽を生成するシンプルで効果的な方法です。オーディオ生成のためにRTcmixを使用してPythonで書かれた例については、私の実装hereを参照してください。

これは、マルコフ連鎖の章のに基づいています.Metalevelのノート、アルゴリズムの構成に関する優れたテキストです。

関連する問題