Ich würde gerne einen interaktiven evolutionären Algorithmus zur Erzeugung von Musik implementieren (wahrscheinlich einfach nur einfache Melodien).
Ich würde gerne JFugue dafür verwenden. Ihre Website behauptet, dass sie gut für evolutionäre Musik geeignet ist, aber ich kann keine evolutionären Beispiele finden.
Ich habe bereits einen Rahmen , um die evolutonary Maschinerie zur Verfügung zu stellen. Ich suche nach einem einfachen, funktionierenden Code, der praktikable Ansätze für den musikalischen Teil demonstriert (z. B. geeignete Kodierungen und evolutionäre Operatoren für die entwickelten Melodien).
Ich habe ein paar Ideen, wie es erreicht werden könnte, aber ich bin nicht besonders gut in Bezug auf Musiktheorie, also möchte ich zunächst etwas neu implementieren, das bekanntermaßen funktioniert.
Hat irgendjemand irgendeinen frei verfügbaren Code (irgendeine Sprache ist in Ordnung), der einen oder mehrere Ansätze der evolutionären Musik demonstriert? Oder kennt man ihn?
BEARBEITEN: Ich suche speziell nach evolutionärem Code und nicht nach anderen Techniken, die für die Musiksynthese verwendet werden könnten.
Bisher habe ich nur dies gefunden, was eine genetische Programmierung ist Beispiel in C.
Update (Januar 2010): Und dieses Online-System , das keinen Quellcode hat, aber ein Beispiel dafür, was erreicht werden kann. Ich habe auch Grammity gefunden, mit dem sich Sequenzen von MIDI-Events aus Grammatiken entwickeln lassen.
Update (Juli 2011): Ich habe gerade einige relevante Python-Code auf der MIT Open Courseware Website .
Sie wollen wahrscheinlich in Markov Chains schauen - Sie sind wahrscheinlich von mehr Nutzen als ein evolutionärer Algorithmus, um die Qualität der Ausgabe zu beurteilen, um das Beste zu züchten wird ein Albtraum (subjektiv und zeitaufwendig), und sie sind ideal für die Kombination mit evolutionären Programmierung.
Es gibt eine gute Einführung in Coding Horror . Der Artikel erklärt das Konzept und demonstriert die bemerkenswerten Ergebnisse, die Kommentare erwähnen Musik viel mehr (ich war stundenlang in den Kommentaren und auf den Seiten, mit denen sie verbunden waren, verloren). Es gibt einige spezifischere Details und weitere Lektüre auf Wikipedia .
Markov-Ketten haben für sie ein Element der Wahrscheinlichkeit, also können Sie sie mit der evolutionären Programmierung kombinieren - indem Sie eine Methode entwickeln, andere Alternativen als den Würfelwurf zu wählen.
Es gibt einige Forschungen, die sich mit zellulären Automaten beschäftigen, um Musik zu erzeugen. Wie bei allen anderen Musikgenerationen ist es eher eine Frage der Zuordnung als der Erzeugung. Sie können so ziemlich alles als Eingabe verwenden, solange Sie Ihr Mapping so definieren, dass es "gut" klingt (naja ich denke, interessant ist ein besseres Wort).
Googeln "zellulare Automatenmusik" gibt einige Hits. Eine weitere gute Informationsquelle ist das Computer Music Journal , wenn Sie Zugang zu ihren Archiven haben.
Tags und Links java genetic-algorithm music evolutionary-algorithm jfugue