Pregunta

Me gustaría implementar un algoritmo evolutivo interactivo para generar música (probablemente solo melodías simples para empezar).

Me gustaría usar JFugue para esto. Su sitio web afirma que se adapta bien a la música evolutiva, pero no puedo encontrar ningún ejemplo evolutivo.

Ya tengo un marco para proporcionar la maquinaria evolutiva. Lo que estoy buscando es un código de trabajo simple que demuestre enfoques viables para la parte musical (por ejemplo, codificaciones adecuadas y operadores evolutivos para las melodías evolucionadas).

Tengo algunas ideas sobre cómo podría lograrse, pero no conozco particularmente la teoría de la música, así que para comenzar me gustaría simplemente reimplementar algo que se sabe que funciona.

Entonces, ¿alguien tiene o sabe de algún código disponible gratuitamente (cualquier idioma está bien) que demuestre uno o más enfoques de la música evolutiva?

EDITAR: busco específicamente código evolutivo en lugar de otras técnicas que podrían usarse para la síntesis de música.

¿Fue útil?

Solución 2

Hasta ahora solo he encontrado esto , que es un ejemplo de programación genética en C.

Actualización (enero de 2010): y este sistema en línea , que no tener código fuente pero es un ejemplo de lo que se puede lograr. También encontré Grammidity , que permite que las secuencias de eventos MIDI se desarrollen a partir de gramáticas.

Actualización (julio de 2011): acabo de encontrar algún código relevante de Python en el sitio MIT Open Courseware .

Otros consejos

Probablemente desee examinar las Cadenas de Markov : para empezar, probablemente le sean más útiles que un algoritmo evolutivo, ya que juzgar la calidad de la salida para generar lo mejor es va a ser una pesadilla (subjetiva y lenta), y son ideales para combinar con programación evolutiva.

Hay una buena introducción a ellos en Coding Horror . El artículo explica el concepto y demuestra los resultados notables, los comentarios mencionan la música mucho más (me perdí durante horas en los comentarios y los sitios a los que se vinculaban). Hay algunos detalles más específicos y lecturas adicionales en Wikipedia .

Las cadenas de Markov tienen un elemento de probabilidad para ellos, así que aquí es donde puedes combinarlas con la programación evolutiva, desarrollando un método para elegir alternativas distintas al lanzamiento de un dado.

Se está investigando el uso de Cellular Automata para generar música. Como con todas las demás generaciones de música, es realmente una cuestión de mapeo en lugar de generación. Podría usar casi cualquier cosa como entrada siempre que defina su mapeo para que suene `` bien '' (bueno, supongo que interesante es una mejor palabra).

Buscar en Google " música de autómatas celulares " da bastantes golpes. Otra buena fuente de información es el Computer Music Journal si puede acceder a sus archivos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top