Evidentemente, no se trata de rehacer el Iamus, ni escribir una tesis sobre generación automática de música. Como decía antes, mis pretensiones son desarrollar algo sencillo, por ello descarto algoritmos evolutivos y redes neuronales. Además, el objetivo es generar material para practicar la lectura a primera vista, no generar obras para ser interpretadas ante el público, por ello me conformo con que el resultado no sea demasiado disonante.
Mi idea es hacer una primera versión muy básica, con pocas opciones y posteriormente ir ampliándola según la necesidad. Por ejemplo, en principio generaría partituras para piano (claves de sol y fa), aunque posteriormente, esto podría ser parametrizable. En la primera versión también voy a restringirlo para generar una sola voz en cada clave.
Las entradas del sistema serían:
- Compás
- Armadura
- Nº compases a generar
- Rango de notas a utilizar en clave de sol
- Rango de notas a utilizar en clave de fa
- Bloques rítmicos a utilizar en la clave de sol
- Bloques rítmicos a utilizar en la clave de fa
- Densidad de silencios
La salida consistiría en un fichero lilypond, aunque también me estoy plantenado generar un fichero con formato MusicXML.
Lo más sencillo sería generar una ristra aleatoria de notas, pero esto daría unos resultados lamentables, musicalmente hablando. Por tanto, para añadirle musicalidad, la generación de notas se realizará conforme a unas reglas. He pensado lo siguiente:
- La generación estará guiada por una progresión de acordes según este grafo
[ Imagen no disponible ]
(de momento, sólo acordes mayores y menores)
- A cada compás le corresponderá un acorde
- El primer y el último compás les corresponderá el acorde sobre el grado I
- Las notas que se generarán en la clave de Fa y de Sol pertenecerán al acorde que le corresponde a su compás (*)
- No habrá ligaduras de unión entre notas de dos compases diferentes, es decir, las figuras de un compás lo ocupan completamente
(*) esta regla la encuentro, tal vez, demasiado restrictiva. Tal vez debería permitir otras notas que no pertenezcan al acorde.
Aquí es donde apelo al conocimiento de los foreros maestros de la teoría musical, ¿se me está pasando por alto algo básico que hará fracasar el proyecto? ¿cambiaríais el enfoque del sistema? ¿o simplemente añadiríais, quitaríais o modificaríais algunas de las reglas?