resoluciÓn de contrapunto de primera …opac.pucv.cl/pucv_txt/txt-6500/uce6637_01.pdf3.1...

50
PONTIFICIA UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA INFORMÁTICA RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA ESPECIE UTILIZANDO PROGRAMACIÓN CON RESTRICCIONES NICOLÁS CRISTIÁN GARCÍA ROMERO PROFESOR GUÍA: DR. BRODERICK CRAWFORD LABRÍN INFORME FINAL DEL PROYECTO PARA OPTAR AL TÍTULO PROFESIONAL DE INGENIERO DE EJECUCIÓN EN INFORMÁTICA DICIEMBRE 2014

Upload: others

Post on 23-Mar-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

PONTIFICIA UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA

ESCUELA DE INGENIERÍA INFORMÁTICA

RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA ESPECIE

UTILIZANDO PROGRAMACIÓN CON RESTRICCIONES

NICOLÁS CRISTIÁN GARCÍA ROMERO

PROFESOR GUÍA: DR. BRODERICK CRAWFORD LABRÍN

INFORME FINAL DEL PROYECTO PARA OPTAR AL TÍTULO PROFESIONAL DE

INGENIERO DE EJECUCIÓN EN INFORMÁTICA

DICIEMBRE 2014

Page 2: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

PONTIFICIA UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA

ESCUELA DE INGENIERÍA INFORMÁTICA

RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA ESPECIE

UTILIZANDO PROGRAMACIÓN CON RESTRICCIONES

NICOLÁS CRISTIÁN GARCÍA ROMERO

Profesor Guía: Dr. Broderick Crawford Labrín

Profesor Co-referente: Dr. Ricardo Soto De Giorgis

Carrera: Ingeniería de Ejecución en Informática

Diciembre 2014

Page 3: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

PONTIFICIA UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA

ESCUELA DE INGENIERÍA INFORMÁTICA

RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA ESPECIE

UTILIZANDO PROGRAMACIÓN CON RESTRICCIONES

NICOLÁS CRISTIÁN GARCÍA ROMERO

PROFESOR GUÍA: DR. BRODERICK CRAWFORD LABRÍN

INFORME FINAL DEL PROYECTO PARA OPTAR AL TÍTULO PROFESIONAL DE

INGENIERO DE EJECUCIÓN EN INFORMÁTICA

MARZO 2015

Page 4: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

PONTIFICIA UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA

ESCUELA DE INGENIERÍA INFORMÁTICA

RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA ESPECIE

UTILIZANDO PROGRAMACIÓN CON RESTRICCIONES

NICOLÁS CRISTIÁN GARCÍA ROMERO

Profesor Guía: Dr. Broderick Crawford Labrín

Profesor Co-referente: Dr. Ricardo Soto De Giorgis

Carrera: Ingeniería de Ejecución en Informática

Marzo 2015

Page 5: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

Dedicatoria A mi madre Leonor, mis hermanos Valeska y Álvaro, a mis compañeros y amigos de Elun,

y a mis maestros Broderick y Ricardo.

Page 6: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

i

Índice Lista de Figuras ....................................................................................................................... iii

Lista de Tablas .......................................................................................................................... iv

Lista de Abreviaturas o Siglas .................................................................................................. v

Resumen .................................................................................................................................... vi

1 Introducción ........................................................................................................................... 1

2 Definición de objetivos .......................................................................................................... 3

3 Marco referencial .................................................................................................................. 4

3.1 Contrapunto: definición y contexto histórico ................................................................ 4

3.2 Contrapunto de primera especie (CPE) ......................................................................... 5

3.2.1 Restricciones melódicas .............................................................................................. 6

3.2.2 Restricciones armónicas .............................................................................................. 6

3.3 Recursos teórico musicales a utilizar en la técnica de CPE ......................................... 7

3.3.1 Intervalos ..................................................................................................................... 7

4 Estado del arte ....................................................................................................................... 9

5 Modelado del CPE como Constraint Satisfaction Problem (CSP).................................. 12

5.1 Representación musical ................................................................................................. 12

5.2 Modelo CSP .................................................................................................................... 15

5.2.1 Parámetros ................................................................................................................. 15

5.2.2 Variables.................................................................................................................... 15

5.2.3 Dominio ..................................................................................................................... 15

5.2.4 Restricciones ............................................................................................................. 15

6 Prototipo y resultados ......................................................................................................... 19

6.1 Lenguaje de programación y entorno de desarrollo ................................................... 19

6.2 Descripción del prototipo .............................................................................................. 20

6.3 Ejecución del prototipo ................................................................................................. 20

6.4 Resultados del prototipo ................................................................................................ 22

6.4.1 Metodología y rúbrica de evaluación ........................................................................ 23

6.4.2 Evaluación de resultados ........................................................................................... 24

6.5 Trabajo Futuro .............................................................................................................. 27

Page 7: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

ii

7 Conclusiones ......................................................................................................................... 28

8 Referencias bibliográficas ................................................................................................... 30

Anexos ....................................................................................................................................... 33

A: Código fuente Prototipo ................................................................................................... 1

Page 8: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

iii

Lista de Figuras Figura 3.1 Primer Cantus Firmus introducido por J.J. Fux. ........................................................ 4 Figura 3.2 Contrapunto de primera especie. ................................................................................ 5 Figura 5.1 Valores enteros asignados a cada nota de la escala cromática, comprendida en el rango de una octava, en el piano................................................................................................ 13 Tabla 5.2 Valores enteros asignados a las notas de la escala cromática en la j-ésima octava. .. 13 Figura 5.2 Ejemplo de Contrapunto de primera especie. .......................................................... 14 Figura 6.1 Ventana principal del prototipo en ECLiPSe. .......................................................... 20 Figura 6.2 Ejecución del programa dentro de tkeclipse............................................................. 21 Figura 6.3 Solicitud de más soluciones al programa dentro de tkeclipse. ................................. 21

Page 9: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

iv

Lista de Tablas Tabla 3.1 Nombres de intervalos. ................................................................................................ 8 Tabla 5.1 Valores enteros asignados a las notas de la escala cromática. .................................. 12 Tabla 5.3 Valores enteros asignados a cada nota de la melodía Discantus del CPE. ............... 14 Tabla 5.4 Valores enteros asignados a cada nota de la melodía Cantus Firmus del CPE. ........ 14 Tabla 5.5 Modelo matemático planteado para la resolución de CPE. ....................................... 15 Tabla 5.6 Representación intervalo melódico entre dos notas de la melodía Discantus. .......... 16 Tabla 5.7 Representación intervalo armónico entre una nota de la melodía Discantus contra una del Cantus Firmus. .............................................................................................................. 16 Tabla 5.8 Modelado de restricciones del CPE. .......................................................................... 17 Tabla 6.1 Soluciones para Cantus Firmus dados. ..................................................................... 22 Tabla 6.2 Rúbrica de evaluación. .............................................................................................. 23 Tabla 6.3 Evaluación de resultados. .......................................................................................... 25 Tabla 6.4 Porcentaje puntuación resultados. ............................................................................. 26

Page 10: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

v

Lista de Abreviaturas o Siglas CAC: Computer-aided composition. CPE: Contrapunto de primera especie. CSP: Constraint satisfaction problem.

Page 11: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

vi

Resumen

En el presente trabajo de investigación se plantea la idea de automatizar el proceso de resolución de ejercicios de contrapunto de primera especie (CPE), con el fin de validar el aprendizaje de dicha técnica de composición musical por parte de un estudiante, además de motivar el continuo estudio y práctica de la disciplina. Para ello, se plantea el CPE como un problema de satisfacción de restricciones (CSP), para el cual se ha realizado una previa investigación con el fin de analizar y traducir las reglas determinadas por Giovanni Pierluigi da Palestrina, en la época Renacentista, asociadas a ese estilo de composición a un lenguaje matemático, generando un modelo del problema. Además, se analizará el panorama general de la composición asistida por computadora, junto a una investigación de los sistemas de software que se han desarrollado.

Palabras-clave: composición musical, contrapunto de primera especie, problema de satisfacción de restricciones, programación con restricciones. Abstract

The following research report presents the idea of automatizing the resolution process of First Species Counterpoint, aiming to validate a student’s learning of this music composition technique besides to encourage the continuous study and practice of the discipline. In order to achieve this objective, the following document proposes First Species Counterpoint as a constraint satisfaction problem (CSP), for which a previous research with the goal to analyze and translate Giovanni Pierluigi da Palestrina’s rules, from the Renaissance period, associated to this composition style to a mathematical language, generating a model for the problem. In addition, the general scenary of the computer-aided composition will be analyzed next to a developed software systems research.

Keywords: algorithmic composition, first species counterpoint, constraint satisfaction problem, constraint programming.

Page 12: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

1

1 Introducción

Los Problemas de Satisfacción de Restricciones [27], en inglés Constraint Satisfaction Problems (CSP), son muy relevantes en el área de Inteligencia Artificial, requiriendo realizar generalmente algún tipo de búsqueda basada en el algoritmo de backtracking para ser resuelto. Este documento propone el cómo una técnica de composición musical puede ser formulada y resuelta como un CSP.

Intentos recientes por desarrollar sistemas expertos en composición musical se han

centrado principalmente en un enfoque basado en reglas, el cual es con frecuencia ineficiente debido a su dependencia en el backtracking cronológico como método de control. Por el contrario, cuando la composición musical es planteada como un CSP, la complejidad del problema, la utilidad de las restricciones musicales y las relaciones entre las notas, se conciben como un grafo de restricciones. Además, pueden ser utilizadas técnicas de consistencia en un intento de reducir el backtracking y proveer un proceso de generación de composiciones musicales más eficiente.

En síntesis, el objetivo es la generación de música contrapuntística mediante el

modelamiento del Contrapunto de Primera Especie (CPE) [28], en inglés First-Species Counterpoint, como un CSP. Mediante este enfoque, se puede realizar un análisis de las reglas del CPE midiendo el efecto de cada una de ellas en la restricción del número de composiciones a obtener.

El dominio de la composición musical es un claro desafío para el paradigma de la

programación con restricciones; definitivamente puede ser considerado como un CSP. Los compositores seleccionan atributos de las notas, tales como su altura, duración y dinámica, desde dominios finitos, que satisfacen las restricciones que ellos sienten que producirán los efectos estéticos más deseables. Además, la composición musical denota ser muy apropiada para la investigación ya que sus reglas pueden involucrar complejas relaciones en las restricciones como modelo de CSP. En base a esto, aplicaremos una metodología para producir composiciones musicales en el estilo de contrapunto del siglo XVII.

Marvin Minsky menciona: “...el problema de crear una buena pieza de música es el

problema de encontrar una estructura que satisfaga muchas y distintas restricciones” [15]. Curtis Roads refiere a que, como una representación formal de conocimiento musical, las restricciones se ven prometedoras [16]. Esta investigación propone omitir otras formas de representación de conocimiento (reglas, lógica y frames) con el fin de observar la composición musical estrictamente como un CSP.

Considerando este enfoque se espera obtener dos beneficios. Si un ejercicio de

composición es naturalmente formulado como un CSP, y, en particular, como un grafo de restricciones, conlleva a realizar un importante descubrimiento: el grafo de restricciones que representa el problema puede sugerir limitaciones si se utiliza la técnica de backtracking para resolver el CSP [8]. El segundo beneficio es la posibilidad de aislar cada regla y analizar su efecto de restringir el número de composiciones consideradas como parte de un género musical.

Page 13: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

2

Esto podría permitir dar valores de relevancia estética subjetivamente a cada regla con el fin de determinar las características de un estilo de composición. En general, se podría comprender y modelar las características que hacen único y reconocible a cada estilo de música y en particular a esta investigación, en base al estudio y modelado del CPE, las bases melódicas y armónicas en las cuales se sustenta y son el primer paso de la Armonía Tradicional Occidental [5].

Este documento presenta los fundamentos teóricos en los cuales se basa el problema

definido, así como su modelamiento como un CSP. También se presentará la elección de herramientas de software para su desarrollo, para luego proceder a explicar el modelo planteado del problema y un análisis de sus restricciones. Finalmente, se presentan resultados obtenidos mediante un conjunto definido de inputs al modelo. Estos resultados fueron analizados mediante una rúbrica de evaluación solicitada a un experto, la cual finalmente entrega un porcentaje de rendimiento general del modelo propuesto.

Este último paso determina el término de este documento, con lo cual se sugiere, mediante

futuras investigaciones a partir de los resultados obtenidos en este trabajo, continuar el estudio y modelado de las especies de contrapunto hasta lograr el dominio y modelado del contrapunto a 4 voces, lo cual es la base teórica necesaria para la investigación, análisis y modelado de estilos de composición tales como la Fuga en estilo de Bach, el cuál en base a la alta complejidad y cohesión de sus reglas melódicas y armónicas, representa la máxima expresión de la Armonía Tradicional de Occidente.

Page 14: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

3

2 Definición de objetivos

Comprendiendo la necesidad explicada en la sección anterior, se define como objetivo general del proyecto:

Construir un prototipo de software que logre la automatización del proceso de

resolución de CPE basado en el paradigma de la programación con restricciones. Para cumplir este objetivo, se establecieron los siguientes objetivos específicos: Investigar sistemas de software existentes que correspondan a una temática similar,

analizando sus funcionalidades, ventajas y desventajas. Definir los límites y criterios implicados en la precisión del proceso de resolución de

CPE. Comprender el CPE como un CSP y construir un modelo en base a las restricciones

analizadas. Investigar y comprender el uso del software ECLiPSe para la resolución del CSP. Diseñar e implementar las restricciones del modelo. Analizar resultados obtenidos.

Page 15: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

4

3 Marco referencial

En esta sección, se explicarán los conceptos y términos relacionados con el problema en estudio.

3.1 Contrapunto: definición y contexto histórico

Del latín punctus contra punctum (nota contra nota), es una técnica de composición musical que combina y evalúa las relaciones existentes debido a la superposición de notas entre 2 o más melodías independientes y de equivalente importancia, con la finalidad de obtener un cierto equilibrio armónico basado en reglas, centrándose en las interacciones melódicas, como la formación de acordes (tríadas y arpegios), intervalos melódicos y armónicos, sucesiones de notas y desarrollo melódico; y con menor prioridad en las armonías producidas por ella [4][5]. Los contrapuntos se basan en una melodía básica conocida, llamada cantus firmus (en latín, melodía fija) (ver Figura 3.1), de ritmo monótono, en base a la cual la tarea es escribir una segunda melodía que cumpla con ciertos requisitos.

Figura 3.1 Primer Cantus Firmus introducido por J.J. Fux.

Casi la totalidad de la música compuesta en Occidente es resultado de algún proceso contrapuntístico. El origen del término se remonta al siglo XIV, en la era del Ars Nova (Edad Media), alcanzando un alto grado de desarrollo en el Renacimiento y Barroco, el cual se ha mantenido hasta el día de hoy [30]. En cada época, la escritura de la música basada en el contrapunto estaba sujeta a reglas, en ocasiones bastante estrictas. En particular, Giovanni Pierluigi da Palestrina fue uno de los mayores exponentes de la época Renacentista y será su técnica compositiva la que se analizará en este trabajo [29].

Si bien la importancia del contrapunto es decreciente en la práctica a lo largo de la historia

a medida que surgieron nuevas técnicas de composición [30], fue el principio predominante que dió pie al desarrollo de la armonía y su organización en la composición musical tal como se utiliza en la actualidad [5].

Page 16: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

5

3.2 Contrapunto de primera especie (CPE)

En 1725, el pedagogo Johann Joseph Fux publica la obra Gradus ad Parnassum (Pasos al Parnaso) [9], con el objetivo de aportar en la enseñanza de la composición contrapuntística a los estudiantes, basado completamente en el estilo de Palestrina, en el cual describe cinco especies de contrapunto:

1. Nota contra nota. 2. Dos notas en el Discantus contra una en el Cantus Firmus. 3. Cuatro notas en el Discantus contra una en el Cantus Firmus. 4. Notas desfasadas contrapuestas entre sí (creando suspensiones armónicas). 5. Todas las especies juntas, llamado contrapunto florido.

Las especies de contrapunto ofrecen menos libertad para el compositor debido a que se han

desarrollado como una herramienta pedagógica, en la que un estudiante deberá́ trabajar progresivamente en cada especie, debido a su creciente complejidad [1].

El CPE (ver Figura 3.2) es homofónico, es decir, las notas de las melodías tienen la misma

duración (usualmente una redonda, de 4 tiempos de duración, por lo que habrá solo una nota por compás en cada melodía) por lo cual ambas melodías comienzan y terminan juntas (poseen la misma cantidad de notas).

Figura 3.2 Contrapunto de primera especie.

Algunas reglas restringen el aspecto melódico del diseño y escritura de contrapuntos [3] [4] [29]. Sólo algunos intervalos (ver sección 3.3) melódicos y armónicos están permitidos, no se permite la repetición sucesiva de notas, tampoco los saltos melódicos consecutivos en una misma dirección, entre otras reglas. Estas serán descritas en las secciones 3.2.1 y 3.2.2.

Si bien no se especifican estándares para el tamaño de los contrapuntos, en relación a su

cantidad de notas, se sugiere un mínimo de 7 y un máximo de 17 [32]. Cabe mencionar también, que haciendo alusión al CPE instrumental, puede haber una distancia máxima de dos Octavas entre el Discantus y el Cantus Firmus [4].

Page 17: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

6

3.2.1 Restricciones melódicas

1. El conjunto de enteros corresponde al dominio de intervalos melódicos permitidos, comprendiendo todas las notas de la melodía, exceptuando la última nota de esta misma. Este conjunto contiene los intervalos de Segunda menor, Segunda Mayor, Tercera menor, Tercera Mayor, Cuarta Justa, Quinta Justa, Sexta menor y Octava Justa. Se considera el valor absoluto del intervalo debido a que no considera la dirección del mismo (valor positivo si la melodía es ascendente, negativo en caso contrario). Ya que el conjunto de enteros no incluye el 0, implica que no puedan existir intervalos melódicos con ese valor y, por lo tanto, no permite la existencia de notas repetidas en la melodía.

2. Intervalos melódicos consecutivos mayores a Tercera menor, deben realizarse en direcciones opuestas, es decir, uno ascendente debe ser seguido por uno descendente y viceversa.

3. De existir un intervalo melódico igual a Cuarta Justa, Quinta Justa u Octava Justa, no se

podrá repetir el mismo hasta en dos compases más adelante.

4. El intervalo melódico entre las dos últimas notas del Discantus debe ser de Segunda ascendente, a la vez que el intervalo melódico entre las dos últimas notas del Cantus Firmus debe ser de Segunda descendente.

5. No pueden existir intervalos melódicos de Cuarta Justa, Quinta Justa u Octava Justa

simultáneamente (en la misma posición) y en la misma dirección (en paralelo) en ambas melodías.

3.2.2 Restricciones armónicas

1. El conjunto de enteros corresponde al dominio de intervalos armónicos permitidos, los cuales son Tercera menor, Tercera Mayor, Quinta Justa, Sexta menor, Sexta mayor y Octava Justa. Al existir una distancia máxima de dos Octavas entre el Discantus y el Cantus Firmus, se permite utilizar intervalos compuestos en base a los recién mencionados. Ya que el conjunto solo contiene enteros positivos, implica que no existan intervalos armónicos negativos y, por lo tanto, no permite que las melodías se crucen (es decir, que una nota de la melodía Cantus Firmus tenga un valor más alto que una del Discantus). Esta restricción no se aplica para la primera y última nota de cada melodía (ver restricciones 8 y 9).

. 2. La primera y la última nota del Discantus deben estar a un mismo intervalo armónico

respecto a su contraparte del Cantus Firmus, el cual puede ser Unísono u Octava Justa. Si el Cantus Firmus corresponde a la melodía inferior, excepcionalmente la primera nota del Discantus puede estar a un intervalo armónico de Quinta Juta por sobre la última nota de la misma melodía.

Page 18: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

7

3. Evitar la falsa relación de tritono, la cual consiste en la prohibición de la aparición del intervalo armónico de Cuarta aumentada en forma diagonal, es decir una nota del Discantus contra una nota del Cantus Firmus que se encuentre en un compás anterior o posterior.

4. No pueden aparecer consecutivamente más de tres intervalos armónicos de Terceras

(menores y/o mayores).

5. No pueden aparecer consecutivamente más de tres intervalos armónicos de Sextas (menores y/o mayores).

6. Los intervalos armónicos de Quinta Justa y Octava Justa deben ser alcanzados mediante

movimientos contrarios en ambas melodías, es decir, en una melodía debe haber un intervalo melódico positivo entre la nota que este en la posición en que se desea el intervalo armónico de Quinta u Octava, y la inmediatamente anterior y en la melodía contraria debe haber un intervalo melódico negativo entre las notas de la misma posición.

7. Un intervalo armónico de Quinta Justa u Octava Justa no puede repetirse hasta en un

mínimo de dos compases hacia adelante. Además, como el intervalo armónico entre las últimas notas de ambas melodías puede ser de Octava Justa, se elimina esta posibilidad del dominio de los intervalos armónicos de las dos posiciones anteriores a la última.

3.3 Recursos teórico musicales a utilizar en la técnica de CPE

En esta sección, se realizará una inducción a los contenidos de la teoría musical [13][14][17] necesarios para comprender el problema descrito así como la solución propuesta en este trabajo de investigación. Para esto, es necesario dominar el concepto de intervalos musicales.

3.3.1 Intervalos

Corresponde a la diferencia de altura entre dos notas musicales, medida cuantitativamente (cantidad de semitonos) y categorizada cualitativamente (nombre del intervalo).

Se comprende como intervalo armónico a aquel que se produce al sonar dos notas simultáneamente, e intervalo melódico como aquel producido por una sucesión de dos notas (es decir, no suenan simultáneamente). En este último, se puede diferenciar la dirección del intervalo entre ascendente (cuando la segunda nota es más alta que la primera) y descendente (cuando la segunda nota es más baja que la primera).

Page 19: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

8

Tabla 3.1 Nombres de intervalos.

Nombre del intervalo Distancia en semitonos

Unísono Es la misma nota

Segunda menor 1 semitono

Segunda mayor 2 semitonos

Tercera menor 3 semitonos

Tercera mayor 4 semitonos

Cuarta justa 5 semitonos

Cuarta aumentada 6 semitonos

Quinta justa 7 semitonos

Sexta menor 8 semitonos

Sexta mayor 9 semitonos

Séptima menor 10 semitonos

Séptima mayor 11 semitonos

Octava justa 12 semitonos

Además, se deben considerar dentro de la clasificación a los intervalos compuestos, los cuales corresponden a la suma de una octava y otro intervalo, por ejemplo: los intervalos de novena, que equivalen a un intervalo de octava más uno de segunda; el de onceava, que equivale al de una octava más una cuarta, etc. En el caso contrario, si un intervalo es menor a una octava, se considera como simple. El nombre del intervalo lo indicará la cantidad de semitonos del intervalo que se suma a la octava base.

Page 20: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

9

4 Estado del arte

El CPE es el fundamento invisible del sistema teórico musical occidental, pero ha sido ignorado por largo tiempo en la composición asistida por computadora (CAC) moderna. A lo largo de la historia, se han realizado variados estudios sobre la armonía musical, sus reglas y su resolución, utilizando programación con restricciones, los cuales buscan de cierta forma validar el estatus de la teoría musical como ciencia y aceptar el desafío de construir modelos capaces de representar el concepto de belleza de un paisaje musical, tratando de identificar mediante la investigación de los tratados musicales publicados en diversas épocas de la historia [5], las reglas expresas que definieron en su tiempo lo que se debía considerar como un trozo de música correctamente construido (teóricamente) y estéticamente bello, lo primero siempre evolucionando en reglas más complejas hasta llegar a proponer nuevos sistemas teórico musicales [19], y lo segundo, siempre ligado a la vanguardia artística de la época correspondiente.

Existen registros a lo largo de la historia acerca del uso de enfoques algorítmicos para la

generación de música; por ejemplo, se conoce que Mozart tenía un Musikalisches Würfelspiel (juego de dados musical, en alemán) en donde utilizaba un dado para decidir como juntar las secciones de un Minueto. Por otro lado, ciertos enfoques basados en reglas fueron realizados por Athanasius Kircher en 1650, el cual podía traducir un poema a un trozo de música utilizando un sistema de cifrado.

Hiller e Isaacson fueron los primeros en experimentar, utilizando un computador para

componer música [11]. Su sistema permitía escribir melodías simples hasta contrapunto a cuatro voces, con la posibilidad de incorporar un set de reglas. Emplearon un método aleatorio del tipo “generar y verificar”, el cual analizaba secuencialmente cada compás de una composición. Si luego de generar 50 candidatos para una nota en específico no se logra un caso exitoso, el programa se detenía y comenzaba de nuevo, ya que no utilizaba backtracking.

Hiller e Isaacson comprendieron la importancia de las restricciones como una

representación del conocimiento musical: “... el proceso de la composición musical requiere la selección de materiales musicales desde un entorno aleatorio. Esto se logra mediante un proceso de eliminación. El alcance de esta imposición depende de la naturaleza de las restricciones impuestas durante el proceso de selección” [11].

Posteriormente, Iannis Xenakis publicó en 1963, su trabajo Formalized Music: Thought

and Mathematics in Music, en el cual expone el uso de funciones matemáticas estocásticas para la composición musical [24].

En 1970, Karlheinz Stockhausen desarrolló un enfoque formulístico para la composición,

en el cual algunos algoritmos informales son aplicados a las notas, duración, dinámicas, timbre y tempo a cualquier elemento de una pieza contrapuntística.

En 1977, Pierre Boulez inauguró el IRCAM [25] (Institut de Recherche et Coordination

Acoustique/Musique), en donde se desarrollaba música mediante programas computacionales. Ésto se realizó a mediados de la década de 1980, utilizando Max, un sistema de CAC interactivo.

Page 21: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

10

Los principios más relevantes ocupados detrás de Max son la música espectral y transformaciones de Fourier. Estos involucran decisiones en la composición musical que son informadas mediante representaciones sonográficas y el análisis matemático del espectro del sonido.

Recientes intentos por desarrollar sistemas expertos en composición musical a menudo han

empleado un esquema de representación del conocimiento basado en reglas [18] [6] [7], esto se comprende debido a la popularidad y efectividad de los sistemas expertos basados en reglas en varios otros dominios, además de la música. No obstante, estos sistemas son frecuentemente ineficientes debido a su dependencia en el backtracking cronológico como método de control. Aquellos conscientes de este dilema, recurren a tácticas como el backtracking inteligente, pero aún nadie ha incorporado técnicas de consistencia en un esfuerzo de aumentar la eficiencia de la búsqueda en la composición automatizada. Debido a que muchos sistemas de composición intentan satisfacer múltiples restricciones mediante varias variables utilizando backtracking como método de control, son susceptibles a un crecimiento exponencial en los tiempos de cálculo.

Sin embargo, David Levitt ha utilizado exitosamente restricciones en un sistema de

improvisación de Jazz [12], en el cual propone modelar ciertos aspectos de la composición como si fuese un circuito pseudo-electrónico que en vez de filtrar dominios, calcula nuevas notas candidatas compás a compás según las notas ya existentes (propagación de valores). No obstante, como todos los sistemas construidos bajo este paradigma, está restringido a las relaciones de igualdad y no reduce su espacio de búsqueda de forma óptima [20].

En marzo de 2013, Dorien Herremans de la University of Antwerp Operations Research

Group (ANTOR) [10], desarrolló Fux, una aplicación capaz de componer contrapunto florido de quinta especie [22] [23]. Sin embargo, su implementación utiliza escasas reglas, inclusive algunas siendo muy poco restrictivas. Su heurística de búsqueda es el algoritmo de búsqueda de vecindad variable [21]. En general, dicho algoritmo “explora vecindades distantes de la actual solución, y se mueve hacia una nueva si y sólo si se ha realizado una mejora. El método de búsqueda local se aplica repetidamente para obtener de las soluciones de la vecindad un óptimo local”. En la implementación, su algoritmo “comienza desde un fragmento generado aleatoriamente y gradualmente mejora esta solución mediante el cambio de una o dos notas a la vez”. Su método, para definir una mejor solución, se apega a las reglas de J. J. Fux.

Un trabajo similar ha sido realizado en España, sin embargo, su implementación involucra

algoritmos probabilísticos [1]. En este trabajo de investigación se ha decidido que el uso de decisiones probabilísticas obstaculiza al software en su búsqueda dentro del espacio de exploración de consecuencias de la aplicación de un set de reglas. Se propone conveniente la exploración completa de las ramificaciones de estas reglas sin tener predisposición a tendencias impuestas por la probabilidad.

Algunos aspectos del método de composición propuesto por Fux también han sido

implementados en un software de composición musical en tiempo real por Anders y Miranda [2]. Su investigación se extiende de su sistema Strasheela, desarrollado previamente, también con capacidades en tiempo real. Este sistema está basado en el lenguaje de programación multi-

Page 22: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

11

paradigma Oz. Su trabajo explota paradigmas de concurrencia declarativa y programación con restricciones.

En la CAC moderna, la rama machine learning no es implementada, a favor del

aprendizaje y mejoramiento de las reglas, ya que no está dentro del contexto del método de composición de Fux.

Además, en general el enfoque basado en reglas, en la CAC moderna ha sido descuidado

por mucho tiempo debido a que opta por enfoques estadísticos, probabilísticos, aleatorios y matemáticos.

Page 23: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

12

5 Modelado del CPE como Constraint Satisfaction Problem (CSP)

5.1 Representación musical

Se representará la escala cromática, entendiendo como tal al conjunto de 12 notas base existentes en el sistema musical occidental, de forma numérica, comprendiendo cada nota como un número entero. Al considerar la nota Do como inicial (valor 0), a cada nota de la escala se le asignará un valor entero ascendentemente (ver Figura 5.1), resultando la representación musical de la siguiente forma (ver Tabla 5.1):

Tabla 5.1 Valores enteros asignados a las notas de la escala cromática.

Nota Musical Valor Entero

Do 0

Do#/Reb 1

Re 2

Re#/Mib 3

Mi 4

Fa 5

Fa#/Solb 6

Sol 7

Sol#/Lab 8

La 9

La#/Sib 10

Si 11

Page 24: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

13

Figura 5.1 Valores enteros asignados a cada nota de la escala cromática, comprendida en el rango de una octava, en

el piano.

La representación de las octavas, es decir, la repetición de la escala cromática en rangos más graves y/o agudos, se limitará a la suma del valor entero asociado a cada i-ésima nota de la escala cromática y el número de octava (j) multiplicado por 12, resultando el conjunto de notas de la j-ésima octava (ver Tabla 5.2):

Tabla 5.2 Valores enteros asignados a las notas de la escala cromática en la j-ésima octava.

Nota Musical Valor Entero Octava 0 Octava 1 Octava j

Do 0 0 12 0 + j*12

Do#/Reb 1 1 13 1 + j*12

Re 2 2 14 2 + j*12

Re#/Mib 3 3 15 3 + j*12

Mi 4 4 16 4 + j*12

Fa 5 5 17 5 + j*12

Fa#/Solb 6 6 18 6 + j*12

Sol 7 7 19 7 + j*12

Sol#/Lab 8 8 20 8 + j*12

La 9 9 21 9 + j*12

La#/Sib 10 10 22 10 + j*12

Si 11 11 23 11 + j*12

Page 25: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

14

A continuación se señalará con un ejemplo (Ver figura 5.2) la representación numérica de las notas de las melodías de un contrapunto dado. Luego se muestra la representación numérica del mismo (Ver Tablas 5.3 y 5.4). Se asume la capacidad de lectura musical del lector, ya que este trabajo no tiene como objetivo la enseñanza de la misma.

Figura 5.2 Ejemplo de Contrapunto de primera especie.

Tabla 5.3 Valores enteros asignados a cada nota de la melodía Discantus del CPE.

Nota Re4 La3 Si3 Re4 Mi4 Re4 Do4 Si3 La3 Do4 Re4

Valor 2 + 4*12

7 + 3*12

11 + 3*12

2 + 4*12

4 + 4*12

2 + 4*12

0 + 4*12

11 + 3*12

7 + 3*12

0 + 4*12

2 + 4*12

Valor 50 43 47 50 52 50 48 47 43 48 50

Tabla 5.4 Valores enteros asignados a cada nota de la melodía Cantus Firmus del CPE.

Nota Re3 Fa3 Mi3 Re3 Sol3 Fa3 La3 Sol3 Fa3 Mi3 Re3

Valor 2 + 3*12

5 + 3*12

4 + 3*12

2 + 3*12

7 + 3*12

5 + 3*12

9 + 3*12

7 + 3*12

5 + 3*12

4 + 3*12

2 + 3*12

Valor 38 41 40 38 43 41 45 43 41 40 38

Inversamente, para identificar una nota musical cualquiera desde su valor numérico, se realizarán las operaciones de división y módulo por 12, obteniendo el número de octava y la nota correspondiente. Por ejemplo, para identificar la nota correspondiente al valor numérico 19: 19 / 12 = 1 (Octava 1) 19 mod 12 = 7 (Nota Si)

Entonces el valor 19 corresponde a la nota Si dentro de la octava 1, es decir, Si1.

Page 26: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

15

5.2 Modelo CSP

En esta sección se presenta el modelo matemático planteado (ver Tabla 5.5) para la resolución del CPE. Para esto, se consideraran todas las soluciones posibles como melodía Discantus candidata para hacer contrapunto con una melodía Cantus Firmus base, la cual deberá ser indicada por el usuario e ingresada como parámetro al modelo.

Tabla 5.5 Modelo matemático planteado para la resolución de CPE.

Discantus

Cantus Firmus 26 29 28 26 31 29 33 31 29 28 26

.

5.2.1 Parámetros

Cantus := un arreglo de N enteros, en donde representa el valor entero asociado a la nota musical ubicada en el compás i-ésimo de la melodía Cantus Firmus, la cual es determinada por el usuario. N denota la cantidad de notas de la melodía.

5.2.2 Variables

X := un arreglo de N enteros no determinados, en donde denota el valor entero asociado a la nota musical ubicada en el compás i-ésimo de la melodía Discantus. N denota la cantidad de notas de la melodía.

5.2.3 Dominio

El rango de notas es definido por la naturaleza modal del CPE, por lo cual el dominio de las variables modelo propuesto se restringe al uso de notas naturales en un ámbito de 4 octavas. Se omite el uso de notas sensibles alteradas (cromatismos) en los modos Dorio, Mixolidio y Eolio. Por lo tanto, cada variable podrá tomar uno de los valores descritos a continuación:

X [1..N] :: [0, 2, 4, 5, 7, 9, 11, 12, 14, 16, 17, 19, 21, 23, 24, 26, 28, 29, 31, 33, 35, 36, 38, 40, 41, 43, 45, 47]

5.2.4 Restricciones

La definición de reglas de composición musical en el CPE por parte de J.J. Fux, implica la formulación de las mismas restricciones en el modelo propuesto. Estas restricciones serán agrupadas en dos sets, según sean de tipo melódico (las cuales afectan a una melodía por si sola) o armónico (afectan a ambas melodías al mismo tiempo), entendiendo que las primeras

Page 27: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

16

corresponden a las relaciones entre las notas propias de la melodía Discantus (el mismo caso para Cantus Firmus) y las segundas a las relaciones entre las notas de ambas melodías.

Puntualmente, se define como intervalo melódico al valor entero de la distancia en semitonos de dos notas contiguas en una melodía (Ver Figura A), sea Discantus o Cantus Firmus. Por intervalo armónico, se comprende como al valor entero de la distancia en semitonos de una nota de la melodía Discantus con una de la melodía Cantus Firmus (Ver Figura B). Para conocer el valor entero asociado a cada intervalo, consultar Tabla 3.1 (Sección 3.3.1).

Tabla 5.6 Representación intervalo melódico entre dos notas de la melodía Discantus.

Discantus

Tabla 5.7 Representación intervalo armónico entre una nota de la melodía Discantus contra una del Cantus Firmus.

Discantus

Cantus Firmus 26 29 28 26 31 29 33 31 29 28 26

La formulación propuesta de ambos set de restricciones será descrita en esta sección. Cabe mencionar que las reglas forzarán a que la melodía Discantus corresponda a la melodía superior del contrapunto, lo cual se considerará como un supuesto, ya que, a pesar de ser el formato generalmente utilizado, no se señala estrictamente en las reglas de composición del CPE. Por lo tanto, el Cantus Firmus indicado como parámetro será evaluado y considerado como melodía inferior en las restricciones del modelo.

La evaluación y validación del Cantus Firmus indicado se realizará previamente a la

búsqueda de soluciones. Para esto, debe cumplir con el set de restricciones melódicas para ser considerado como un Cantus Firmus válido, de lo contrario, las posibles soluciones generadas podrían escapar a la estética musical propia del CPE.

Page 28: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

17

Tabla 5.8 Modelado de restricciones del CPE.

Tipo Restricción Modelado

Melódica El conjunto de enteros corresponde al dominio de intervalos melódicos permitidos, comprendiendo todas las notas de la melodía, exceptuando la última nota de esta misma. Este conjunto contiene los intervalos de Segunda menor, Segunda Mayor, Tercera menor, Tercera Mayor, Cuarta Justa, Quinta Justa, Sexta menor y Octava Justa. Se considera el valor absoluto del intervalo debido a que no considera la dirección del mismo (valor positivo si la melodía es ascendente, negativo en caso contrario). Ya que el conjunto de enteros no incluye el 0, implica que no puedan existir intervalos melódicos con ese valor y, por lo tanto, no permite la existencia de notas repetidas en la melodía.

| | [1, 2, 3, 4, 5, 7, 8, 12], i = [1... N-1]

Melódica Intervalos melódicos consecutivos mayores a Tercera menor, deben realizarse en direcciones opuestas, es decir, uno ascendente debe ser seguido por uno descendente y viceversa.

3 + 3, i = [3... N-1]

-3 3, i = [3... N-1]

Melódica De existir un intervalo melódico igual a Cuarta Justa, Quinta Justa u Octava Justa, no se podrá repetir el mismo hasta en dos compases más adelante.

| | [5, 7, 12] | | | | | | | |,, i = [4… N] | | [5, 7, 12] | | | |

Melódica El intervalo melódico entre las dos últimas notas del Discantus debe ser de Segunda ascendente.

[1, 2]

Melódica No pueden existir intervalos melódicos de Cuarta Justa, Quinta Justa u Octava Justa simultáneamente (en la misma posición) y en la misma dirección (en paralelo) en ambas melodías.

| | [5, 7, 12] , i = [2… N-1]

Page 29: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

18

Armónica El conjunto de enteros corresponde al dominio de intervalos armónicos permitidos, los cuales son Tercera menor, Tercera Mayor, Quinta Justa, Sexta menor, Sexta mayor y Octava Justa. Al existir una distancia máxima de dos Octavas entre el Discantus y el Cantus Firmus, se permite utilizar intervalos compuestos en base a los recién mencionados. Ya que el conjunto solo contiene enteros positivos, implica que no existan intervalos armónicos negativos y, por lo tanto, no permite que las melodías se crucen (es decir, que una nota de la melodía Cantus Firmus tenga un valor más alto que una del Discantus). Esta restricción no se aplica para la primera y última nota de cada melodía.

[3, 4, 7, 8, 9, 12, 15, 16, 19, 20, 21, 24], i = [2… N-1]

Armónica La primera y la última nota del Discantus deben estar a un mismo intervalo armónico respecto a su contraparte del Cantus Firmus, el cual debe ser de Octava Justa. Excepcionalmente la primera nota del Discantus puede estar a un intervalo armónico de Quinta Justa por sobre la última nota de la misma melodía.

( 12 12) ( 17 12)

Armónica Evitar la falsa relación de tritono, la cual consiste en la prohibición de la aparición del intervalo armónico de Cuarta aumentada en forma diagonal, es decir una nota del Discantus contra una nota del Cantus Firmus que se encuentre en un compás anterior o posterior.

[6, 18], i = [2… N]

[6, 18], i = [1… N-1]

Armónica No pueden aparecer consecutivamente más de tres intervalos armónicos de Terceras (menores y/o mayores).

[3, 4, 15, 16] [3, 4, 15, 16]

[3, 4, 15, 16] [3, 4, 15, 16], i = [5… N-1]

Armónica No pueden aparecer consecutivamente más de tres intervalos armónicos de Sextas (menores y/o mayores).

[8, 9, 20, 21] [8, 9, 20, 21] [8, 9, 20, 21] [8, 9], i = [5… N-1]

Page 30: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

19

Armónica Los intervalos armónicos de Quinta Justa y Octava Justa deben ser alcanzados mediante movimientos contrarios en ambas melodías, es decir, en una melodía debe haber un intervalo melódico positivo entre la nota que este en la posición en que se desea el intervalo armónico de Quinta u Octava, y la inmediatamente anterior y en la melodía contraria debe haber un intervalo melódico negativo entre las notas de la misma posición.

[7, 12, 19, 24] ( 0 0) ( 0 0), i = [2… N-1]

Armónica Un intervalo armónico de Quinta Justa u Octava Justa no puede repetirse hasta en un mínimo de dos compases hacia adelante. Además, como el intervalo armónico entre las últimas notas de ambas melodías puede ser de Octava Justa, se elimina esta posibilidad del dominio de los intervalos armónicos de las dos posiciones anteriores a la última.

, i = [3… N-1]

, i = [3… N-3]

6 Prototipo y resultados

En esta sección se muestra el prototipo que resuelve el CPE, luego se analizarán los resultados obtenidos de un Cantus Firmus utilizado para pruebas.

6.1 Lenguaje de programación y entorno de desarrollo

El prototipo fue desarrollado en el lenguaje de programación PROLOG. Para el desarrollo del prototipo se utilizó el software ECLiPSe 6.1 (versión publicada en

Junio 2013). Además, en el plano de hardware, se utilizó como procesador un Intel Core 2 Duo de 1.86 GHz con 2 GB DDR3 1067 MHz de memoria RAM corriendo el sistema operativo OS X Yosemite 10.10 para la ejecución de pruebas.

Page 31: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

20

6.2 Descripción del prototipo

El prototipo desarrollado funciona de la siguiente forma: Se debe ejecutar la aplicación tkeclipse desde una terminal, luego compilar el archivo contrapunto.ecl (ver Anexo B) y como último paso, se debe ejecutar el modulo top como query e ingresar la melodía Cantus Firmus deseada por el usuario como parámetro, está última debe estar en el formato de estructura de dato arreglo especificado por ECLiPSe (ver Figura 6.1), por ejemplo:

Cantus = [](26, 29, 28, 26, 31, 29, 33, 31, 29, 28, 26)

Figura 6.1 Ventana principal del prototipo en ECLiPSe.

6.3 Ejecución del prototipo

Utilizando el Cantus Firmus entregado como ejemplo en la sección anterior, se logra obtener una primera solución (ver Figura 6.2):

Page 32: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

21

Figura 6.2 Ejecución del programa dentro de tkeclipse.

Figura 6.3 Solicitud de más soluciones al programa dentro de tkeclipse.

Para consultar más soluciones al programa (es decir, más arreglos que representan la melodías Discantus candidatas), de existir, se debe presionar el botón more dentro de la interfaz de tkeclipse (ver Figura 6.3).

Page 33: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

22

6.4 Resultados del prototipo

Para el análisis de resultados de la presente sección, se utilizaron Cantus Firmus obtenidos de diversas referencias, los cuales sus notas serán representadas según el formato numérico propuesto en este trabajo. A continuación se observan los resultados obtenidos, en base a la primera solución encontrada para cada Cantus Firmus.

Tabla 6.1 Soluciones para Cantus Firmus dados.

Cantus Firmus Representación numérica

1º solución encontrada Referencia Bibliográfica

La2, Mi3, Fa3, Mi3, Re3, Mi3, Do3, Si2, La2

(21, 28, 29, 28, 26, 28, 24, 23, 21)

(33, 31, 33, 31, 38, 35, 43, 31, 33)

[29]

Do2, Re2, Mi2, Do2, Fa2, Mi2, Re2, Do2

(12, 14, 16, 12, 17, 16, 14, 12)

(24, 21, 24, 36, 29, 31, 23, 24) [29]

La1 Do2 Si1 La1 Re2 Do2 Mi2 Re2 Do2 Si1 La1

(9, 12, 11, 9, 14, 12, 16, 14, 12, 11, 9)

(21, 16, 14, 21, 23, 31, 28, 29, 31, 19, 21)

[29]

Re2 Fa2 Mi2 Re2 Sol2 Fa2 La2 Sol2 Fa2 Mi2 Re2

(14, 17, 16, 14, 19, 17, 21, 19, 17, 16, 14)

(26, 21, 19, 26, 28, 36, 33, 35, 36, 24, 26)

[26]

Re2 Do2 Si1 Sol1 La1 Si1 Mi2 Re2

(14, 12, 11, 7, 9, 11, 16, 14) (26, 21, 19, 31 28, 26, 24, 26) [29]

Do2 Mi2 Re2 Fa2 Mi2 Re2 Do2

(24, 28, 26, 29, 28, 26, 24) (36, 43, 41, 45, 47, 35, 36) [29]

Sol1 Fa1 Mi1 Do1 Re1 Mi1 La1 Sol1

(19, 17, 16, 12, 14, 16, 21, 19)

(31, 26, 24, 36, 33, 31, 29, 31) [29]

La1 Re1 Sol1 Fa1 Mi1 Sol1 La1 Si1 La1

(21, 14, 19, 17, 16, 19, 21, 23, 21)

(33, 29, 28, 26, 28, 26, 24, 31, 33)

[29]

La1 Do2 Si1 Re2 Do2 Si1 La1

(21, 24, 23, 26, 24, 23, 21) (33, 40, 38, 41, 43, 31, 33) [31]

Re1 Fa1 Sol1 La1 Sol1 Fa1 Mi1 Re1

(14, 17, 19, 21, 19, 17, 16, 14)

(26, 38, 40, 33, 35, 36, 24, 26) [34]

Re1 Fa1 Mi1 Sol1 Fa1 Mi1 Re1

(14, 17, 16, 19, 17, 16, 14) (26, 33, 31, 35, 36, 24, 26) [32]

La1 Mi2 Fa2 Mi2 Re2 Mi2 Do2 Si1 La1

(21, 28, 29, 28, 26, 28, 24, 23, 21)

(33, 31, 33, 31, 38, 35, 43, 31, 33)

[4]

Do1 Fa1 Re1 Mi1Sol1 La1 Fa1 Sol1 Mi1 Re1 Do1

(12, 17, 14, 16, 19, 21, 17, 19, 16, 14, 12)

(24, 21, 29, 28, 26, 29, 33, 31, 35, 23, 24)

[4]

Do1 Mi1 Re1 Mi1 Sol1 La1 Fa1 Sol1 Mi1 Re1 Do1

(12, 16, 14, 16, 19, 21, 17, 19, 16, 14, 12)

(24, 31, 29, 28, 26, 29, 33, 31, 35, 23, 24)

[4]

Page 34: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

23

Do1 Mi1 Re1 Fa1 Sol1 La1 Re1 Fa1 Mi1 Re1 Do1

(12, 16, 14, 17, 19, 21, 14, 17, 16, 14, 12)

(24, 19, 21, 33, 31, 28, 33, 29, 31, 23, 24)

[4]

6.4.1 Metodología y rúbrica de evaluación

Luego de obtener los resultados, fueron presentados a un Director de Cuarteto de Cuerdas, Licenciado en Artes y Ciencias Musicales, y Profesor de Música, a quién nos referiremos como al experto. Le fue solicitado evaluar la calidad de las melodías Discantus generadas con el objetivo de validar las mismas como candidatas reales de contrapunto junto al Cantus Firmus dado. Dada la naturaleza del output del modelo, fue necesario traducir el formato numérico de los Discantus generados al lenguaje natural de notas musicales, para la rápida comprensión y manejo de las mismas para el experto.

Para realizar la evaluación, el experto decidió elaborar una rúbrica con seis categorías

definidas (Ver Tabla 6.2), a las que se debe asignar un valor de 1, si el Discantus cumple con la especificación, 0.5 si presenta deficiencias tolerables y 0 si el Discantus es un mal candidato para tal asignación.

Tabla 6.2 Rúbrica de evaluación.

Categoría / Valor 1 0.5 0

Intervalos armónicos Se cumplen perfectamente las restricciones cualitativas asociadas a los intervalos armónicos generados entre el Cantus Firmus y Discantus. No debe existir cruce de melodías ni consonancias perfectas consecutivas (unísono, quinta u octava). Se debe comenzar con una consonancia perfecta.

Existen ciertas faltas como la sucesión consecutiva de consonancias perfectas, entre otras, las cuales poseen un cierto grado de permisividad.

Las faltas existentes en la melodía hacen de esta un candidato no deseable para el contrapunto.

Intervalos melódicos Se cumplen perfectamente las restricciones cualitativas asociadas a los intervalos melódicos generados en el Discantus.

Uso de tritono como intervalo compuesto (suma de intervalos en una misma dirección, hasta el cambio de la misma).

Uso de intervalos compuestos no permitidos y saltos melódicos superiores a una octava.

Page 35: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

24

Independencia melódica Se da preferencia a los movimientos contrarios entre ambas melodías. Si una salta, la otra se debe mover gradualmente. Obligatoriamente se debe llegar a consonancias perfectas mediante movimientos contrarios.

Existen reiteradas secuencias de intervalos armónicos de Tercera o Sexta Repetidos que provocan que ambas melodías tengan pasajes con movimientos en paralelo.

Existen muy pocos movimientos en dirección contraria entre las melodías, además de saltos melódicos ocurridos en un mismo compás.

Compensación melódica Saltos melódicos deben ser precedidos por una preparación melódica, es decir un salto de Tercera menor o bien un paso gradual en dirección contraria al salto. Lo mismo se aplica para la compensación melódica después de realizado el salto melódico. Se busca que la melodía tenga forma de “zig-zag”.

Existen saltos consecutivos en una misma dirección (no más de una aparición), los cuales suman en total un intervalo melódico permitido y la compensación se realiza después del último salto.

Existen reiterados saltos consecutivos en una misma dirección que no cumplen con el principio de compensación melódica.

Manejo de clímax de la melodía

Debe existir una nota, en el Discantus, que tenga el valor más alto de la misma.

La nota clímax aparece de forma anticipada en el Discantus.

El Discantus no posee nota clímax.

Construcción melódica Uso de modos tradicionales jonio, dorio, lidio, mixolidio o eolio para la construcción de contrapunto. Se debe evitar el uso de cromatismos, arpegios, secuencias y repetitivas y monótonas en el Discantus.

Existen secuencias y arpegios cuales se pueden tolerar bajo un grado de permisividad.

Se da énfasis al uso de notas no relevantes dentro del modo utilizado para saltos melódicos y/o clímax.

6.4.2 Evaluación de resultados

La tabla 6.3 resume los valores totales obtenidos por cada Discantus en relación de la suma de los valores asignados para cada categoría por el experto, además de presentar los porcentajes de cumplimento en general de cada categoría, considerando todos los Discantus evaluados.

El valor total más alto obtenido es 6, el cual corresponde a la puntuación máxima, y el más

bajo de 4. En relación al porcentaje de cumplimiento por categoría, se puede apreciar altos

Page 36: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

25

valores en general, a excepción de la categoría “Compensación melódica”, la cual sólo obtiene un 66.6% de cumplimiento.

Se debe considerar que las puntuaciones máximas corresponden a las consideraciones en la

artesanía manual de composición de CPE definidas por el experto.

Tabla 6.3 Evaluación de resultados.

Discantus / Categoría

Intervalos armónicos

Intervalos melódicos

Independencia melódica

Compensación melódica

Manejo de clímax de la melodía

Construcción melódica

Total

(33, 31, 33, 31, 38, 35, 43, 31, 33)

0.5 1 1 0.5 1 0.5 4.5

(24, 21, 24, 36, 29, 31, 23, 24)

0.5 1 1 0.5 0.5 0.5 4

(21, 16, 14, 21, 23, 31, 28, 29, 31, 19, 21)

1 0.5 1 0.5 1 1 5

(26, 21, 19, 26, 28, 36, 33, 35, 36, 24, 26)

1 1 1 1 1 1 6

(26, 21, 19, 31 28, 26, 24, 26)

1 0.5 0.5 1 1 1 5

(36, 43, 41, 45, 47, 35, 36)

1 1 1 1 1 1 6

(31, 26, 24, 36, 33, 31, 29, 31)

1 1 1 1 0 1 5

(33, 29, 28, 26, 28, 26, 24, 31, 33)

1 1 1 1 1 1 6

(33, 40, 38, 41, 43, 31, 33)

1 1 0.5 0.5 1 1 5

(26, 38, 40, 33, 35, 36, 24, 26)

0.5 1 1 1 1 1 5.5

Page 37: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

26

(26, 33, 31, 35, 36, 24, 26)

1 1 1 0.5 1 1 5.5

(33, 31, 33, 31, 38, 35, 43, 31, 33)

1 0.5 1 0.5 1 1 5

(24, 21, 29, 28, 26, 29, 33, 31, 35, 23, 24)

1 1 1 0.5 1 0.5 5

(24, 31, 29, 28, 26, 29, 33, 31, 35, 23, 24)

1 1 1 0.5 1 0.5 5

(24, 19, 21, 33, 31, 28, 33, 29, 31, 23, 24)

0.5 1 0.5 0.5 1 1 4.5

Cumpli- miento

83.3% 83.3% 83.3% 66.6% 90% 86.6% 82.2%

En resumen, en la Tabla 6.4 se muestra el porcentaje de Discantus que obtuvieron cada puntuación total dentro de una escala de 0 a 6. Se observa que el 80% de los resultados tienen una puntuación total igual o mayor a 5, lo que si bien no es perfecto (puntuación de 6), es considerado como aceptable según la gravedad de la falta y la permisividad de ella, según el experto.

Tabla 6.4 Porcentaje puntuación resultados.

Evaluación Porcentaje

0 - 0.5 0%

1 - 1.5 0%

2 - 2.5 0%

3 - 3.5 0%

4 - 4.5 20%

5 - 5.5 60%

6 20%

Page 38: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

27

Los resultados presentados son prometedores. Sin embargo, el sistema está lejos de ser perfecto ya que su rendimiento no es suficiente para satisfacer las necesidades de un compositor, se debe recordar la naturaleza académica de la práctica del CPE, por lo que no se debe esperar gran complejidad y belleza musical de sus resultados.

6.5 Trabajo Futuro

Una continuación en la investigación y trabajo futuro es requerida, por lo cual se hará sugerencia de los pasos a seguir con la finalidad de mejorar los resultados. Idealmente, se busca lograr el dominio perfecto de la artesanía compositiva del CPE.

El primer paso consiste en realizar una revisión al modelo planteado según las categorías

evaluadas en la rúbrica con menor porcentaje de cumplimiento. Probablemente se deban agregar restricciones nuevas y mejorar las existentes para aumentar el valor de cumplimiento de la categoría "Compensación melódica". Esta tarea no debiese ser altamente compleja si se tiene bien localizado el problema.

Un segundo y último paso corresponde a afinar las restricciones existentes relacionadas

con el resto de categorías, considerando su buena evaluación inicial. Se debe poner énfasis en la categoría “Manejo de clímax de la melodía”, que aunque corresponde a la mejor evaluada, el cuidado de esta no fue planteado en un comienzo, por lo que su mejoramiento puede significar en una mejora general al rendimiento del sistema.

Se debe notar que la moción de aumentar la cantidad de restricciones del modelo significa

que el problema es de un nivel más alto al considerado inicialmente.

Page 39: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

28

7 Conclusiones

La Programación con Restricciones es un paradigma altamente adecuado para el modelado computacional de teorías y composiciones musicales. Su paradigma ha sido utilizado durante varias décadas en este campo, y muchas subdisciplinas de la teoría musical, tales como el contrapunto, armonía, ritmo e instrumentación han sido estudiadas bajo este enfoque.

Sin embargo, muchos aspectos complejos de la teoría musical aún no han sido modelados

como CSP. En particular, se ha realizado muy pocas investigaciones en el campo de la orquestación e instrumentación. Otros campos a considerar en investigación, aunque en menor medida, son el contrapunto, el modelamiento de la melodía y formas musicales.

De todas formas, es interesante materia de investigación continuar el estudio de la

composición musical bajo el paradigma CSP, extendiendo el modelo del CPE a estilos de composición más complejos [3]; por ejemplo el contrapunto florido, buscando comprender lo apropiado que es considerar la composición musical estrictamente como un CSP. Algunos compositores han sido reservados en este aspecto [7], pero lo ven posible, como refiere Marvin Minsky [15]: “Si realmente tuvieras que pensar todas las cosas, en las múltiples restricciones que fueron satisfechas en una pieza, no podrías hacerlo. Pero si pudieras controlar un montón de expertos que no tuviesen que comunicar más que el enviar restricciones unos a otros diciendo: Lo que sea que hagas, no coloques la…”.

En el presente proyecto de investigación se ha logrado establecer la propuesta de un

modelo CSP para la resolución del contrapunto de primera especie en base a las reglas de composición propuestas por Palestrina y posteriormente definidas y clasificadas por J.J. Fux. Se tuvo especial consideración en el cuidadoso tratamiento de estas reglas, logrando definir un gran número de estas, las cuales han sido integradas al modelo exitosamente. Si bien el modelo prototipado puede considerarse rudimentario frente a ciertas subjetividades de consideración estética musical, ciertamente es un claro acercamiento al tratamiento en detalle de la misma, representando un primer intento en la búsqueda de la representación de un soporte a la creatividad musical dentro un de contexto específico.

Los resultados obtenidos pueden considerarse prometedores. Luego de utilizar un número

de melodías Cantus Firmus rescatados de diversas referencias como inputs al modelo, los contrapuntos generados por el mismo fueron sometidos a la revisión de un experto, quien luego de elaborar una rúbrica para la evaluación definida dentro de los parámetros de su experticia musical, procedió a valorizar cada contrapunto generado por el modelo, revisando en detalle el cumplimiento total, parcial o nulo de cada categoría sujeta a revisión identificado por la rúbrica.

Se verificó un rendimiento general del sistema no perfecto, pero bastante satisfactorio.

Mediante la rúbrica se identificaron las falencias del modelo, las cuales no son numerosas pero no por ello menos relevantes. Se hace necesario mencionar la falta del tratamiento cuidadoso del clímax de la melodía Discantus en las restricciones propuestas por el modelo, en donde el experto propone evaluar con severidad en la rúbrica, restando un importante puntaje y valorización total a los contrapuntos generados por el modelo que no cumpliesen con lo deseado a evaluar. También se identificaron algunas faltas escasas en restricciones si identificadas, lo

Page 40: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

29

cual puede generarse a un planteamiento insuficiente de la restricción o bien a un error en la programación del código fuente del modelo, lo cual sin duda motiva a una revisión del trabajo propuesto para una mejora del mismo.

Se sugiere proyectar una futura investigación, a partir de los resultados obtenidos en este

trabajo, considerando un WishList por parte del autor, de los elementos a considerar para seguir perfeccionando el estudio del contrapunto. La evaluación el peso de las restricciones del modelo (identificación de restricciones blandas) y el análisis profundo de su propagación con el fin de identificar alguna metaheurística adecuada para la búsqueda de soluciones, el análisis y posicionamiento del clímax de la melodía y la evaluación de una función de maximización de utilización de melismas (gestos musicales y secuencias numéricas predeterminadas), con el fin de evolucionar el modelo CSP planteado a un COP, con el cual se podría lograr, luego de plantear una rúbrica de evaluación mucho más compleja, la obtención de un set de resultados de características bajo un tratamiento más cuidadoso, tratando de apegarse a la estética musical identificada en la artesanía de los maestros de composición del contrapunto.

Page 41: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

30

8 Referencias bibliográficas [1] Aguilera, Gabriel, et al. "Automated generation of contrapuntal musical compositions using probabilistic logic in derive." Mathematics and Computers in Simulation 80.6 (2010): 1200-1211. [2] Anders, T., & Miranda, E. R. (2008). “Constraint-based composition in real time”. In Proceedings of the 2008 International Computer Music Conference . [3] Anders, T. and Miranda, E. R. 2011. “Constraint programming systems for modeling music theories and composition”. ACM Comput. Surv. 43, 4, Article 30 (October 2011). [4] Baron, Michel. Curso de Contrapunto Riguroso. 1998. [5] Belkin, Alan. Principles of Counterpoint. 2000. [6] Cope, David. "An Expert System for Computer-assisted Composition." Computer Music Journal, 11, 1987. [7] Ebcioglu, Kemal. "An Expert System for Chorale Harmonization." AAAI 1986 Proceedings,pp. 784-788. [8] Freuder, Eugene. "A Sufficient Condition for Backtrack-Free Search." Journal of the ACM, 29, pp. 24-32. [9] Fux, Johann Joseph. “Gradus ad Parnassum”. W W Norton & Company, 1971. Translated from German to English by Alfred Mann. [10] Herremans, Dorien and Srensen, Kenneth. 2012. “Composing first species counterpoint with a variable neighbourhood search algorithm”, Journal of Mathematics and the Arts, 6:4, 169-189, DOI: 10.1080/17513472.2012.738554 [11] Hiller, Lejaren A. and Leonard M. Isaacson. “Experimental Music: Composition with an Electronic Computer”. New York: McGraw-Hill, 1959. p 221. [12] Levitt, David. "Machine Tongues X: Constraint Languages". Computer Music Journal, 8 (I), pp. 9-21. [13] Piston, Walter. “Principles of Harmonic Analysis”. E. C. Schirmer, Boston. 1933. [14] Piston, Walter. “Counterpoint. W. W. Norton & Company”, Inc., Nueva York. 1947. [15] Roads, Curtis. "Interview with Marvin Minsky." Computer Music Journal, 4, pp. 25-39. [16] Roads, Curtis. "Research in Music and Artificial Intelligence." ACM Computing Surveys, 17, pp. 163-190.

Page 42: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

31

[17] Swindale, Owen. “Polyphonic Composition”. London: Oxford University Press, 1962. [18] Thomas, Marilyn Taft. "Vivace: A Rule Based A1 System for Composition." ICMC 1985 Proceedings, pp. 267-274. [19] Truchet, Charlotte, Agon, Carlos and Codognet, Philippe. “A Constraint Programming System for Music Composition”, Preliminary Results, Equipe Représentation Musicales, IRCAM and LIP6, Université de Paris 6, Paris, France [20] Van Hentenryck, Pascal. “Constraint Satisfaction in Logic Programming”. Cambridge, Massachusetts: MIT Press, 1989 [21] HYPERLINK http://en.wikipedia.org/wiki/Variable_Neighborhood_Search Revisado 19/06/2014 [22] HYPERLINK http://antor.ua.ac.be/FuX Revisado 19/06/2014 [23] HYPERLINK https://play.google.com/store/apps/details?id=com.dh.fux Revisado 19/06/2014 [24] Xenakis, Iannis. “Formalized music: thought and mathematics in composition”. Editions Richard-Masse. 1963. [25] HYPERLINK http://brahms.ircam.fr/pierre-boulez. Revisado 19/06/2014 [26] Anders, Torsten. “Composing music by composing rules: Design and usage of a generic music constraint system”. Ph.D. thesis, School of Music & Sonic Arts, Queen’s University Belfast. 2007. [27] Rossi, Francesca; Van Beek, Peter; Walsh, Toby. “Handbook of Constraint Programming (Foundations of Artificial Intelligence)”. Elsevier Science, 1 Edition. 2006. [28] Mateu, Miguel Ángel. “Armonía Práctica vol. 1”. Ab Música Ediciones Musicales. 2004. p 33. [29] Mateu, Miguel Ángel. “Armonía Práctica vol. 1”. Ab Música Ediciones Musicales. 2004. pp 26 - 30. [30] Martínez Thais; García Rubén. Armonía Musical. Definición e Historia. Departament de Matemàtica Aplicada. Universitat Politècnica de Catalunya. [31] David Ovans, Russell. “An Object-Oriented Constraint Satisfaction System Applied to Music Composition”. Simon Fraser University. August 1990. [32] Alarcón, Daniel. “Rule-based Music Composition using Cantus Firmus”. The Australian National University, 2013.

Page 43: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

32

[33] Weale Timothy; Seitzer Jennifer. “EVOC: A Music Generation System using Genetic Algorithms”. University of Dayton. [34] Farbood Mary; Schoner Bernd. “Analysis and Synthesis of Palestrina-Style Counterpoint Using Markov Chains”. MIT Media Laboratory.

Page 44: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

33

Anexos

Page 45: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

1

A: Código fuente Prototipo /* First Species Counterpoint in ECLiPSe. 'Resolución de Contrapunto de primera especie utilizando programación con restricciones' 'Proyecto 2' Source Code, PUCV. 2014.21.14 Model created by Nicolás García, [email protected] - Provided Cantus Firmus Arrays for testing: (21, 28, 29, 28, 26, 28, 24, 23, 21) (12, 14, 16, 12, 17, 16, 14, 12) (9, 12, 11, 9, 14, 12, 16, 14, 12, 11, 9) (14, 17, 16, 14, 19, 17, 21, 19, 17, 16, 14) i.e: "top([](21, 28, 29, 28, 26, 28, 24, 23, 21))" */ :-lib(ic). top(Cantus):- dim(Cantus, [N]), (cantus_validation(Cantus, N) -> counterpoint_head(Cantus, N) ; writeln('Error: El cantus firmus no es valido')). cantus_validation(Cantus, N):- validate_cantus_firmus_lenght(N), validate_cantus_firmus_musical_mode(Cantus), validate_cantus_firmus_cadence(Cantus, N), allowed_melodic_intervals(Cantus, N), opposite_mov_melodic_jumps(Cantus, N), hold_min_2_bars_4_5_8_melodic_jumps(Cantus, N). counterpoint_head(Cantus, N):- counterpoint(Cantus,Discantus, N), writeln('======================================'), write('Discantus: '),writeln(Discantus), write('Cantus Firmus: '),writeln(Cantus). counterpoint(Cantus, Discantus, N):- dim(Discantus,[N]), /* Declare domain */ Discantus[1..N] :: [0, 2, 4, 5, 7, 9, 11, 12, 14, 16, 17, 19, 21, 23, 24, 26, 28, 29, 31, 33, 35, 36, 38, 40, 41, 43, 45, 47],

Page 46: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

2

/* Constraints */ first_and_last_harmonic_interval(Cantus, Discantus, N), n1_n2_no_8_harmonic_int(Cantus, Discantus), n1_n2_no_8_harmonic_int2(Cantus, Discantus, N), no_tritone(Cantus, Discantus, N), no_parallel_4_5_8_melodic_interval_jumps(Cantus, Discantus, N), allowed_harmonic_intervals(Cantus, Discantus, N), discantus_cadence(Discantus, N), max_3_consecutive_thirds(Discantus, Cantus, N), max_3_consecutive_sixths(Discantus, Cantus, N), opposite_mov_melodies_for_5_8_harmonic_int(Cantus, Discantus, N), hold_min_2_bars_5_harmonic_int(Cantus, Discantus, N), hold_min_2_bars_5_harmonic_int2(Cantus, Discantus), hold_min_2_bars_8_harmonic_int(Cantus, Discantus, N), opposite_mov_melodic_jumps(Discantus, N), hold_min_2_bars_4_5_8_melodic_jumps(Discantus, N), allowed_melodic_intervals(Discantus, N), /* Backtracking Search */ labeling(Discantus[1..N]). allowed_melodic_intervals(Melody, N):- (for(I, 1, N-1), param(Melody) do X is Melody[I+1], Y is Melody[I], IntervalAbs is abs(X - Y), (IntervalAbs #= 1; IntervalAbs #= 2; IntervalAbs #= 3; IntervalAbs #= 4; IntervalAbs #= 5; IntervalAbs #= 7; IntervalAbs #= 8; IntervalAbs #= 12) ). allowed_harmonic_intervals(Cantus, Discantus, N):- (for(I, 2, N-1), param(Cantus, Discantus) do X is Discantus[I], Y is Cantus[I], (X - Y #= 3; X - Y #= 4; X - Y #= 7; X - Y #= 8; X - Y #= 9; X - Y #= 12; X - Y #= 15; X - Y #= 16; X - Y #= 19; X - Y #= 20; X - Y #= 21; X - Y #= 24) ). first_and_last_harmonic_interval(Cantus, Discantus, N):- (Discantus[1] - Cantus[1] #= 12, Discantus[N] - Cantus[N] #= 12);

Page 47: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

3

(Discantus[1] - Cantus[1] #= 17, Discantus[N] - Cantus[N] #= 12). no_tritone(Cantus, Discantus, N):- (for(I,2,N), param(Cantus, Discantus) do X is Discantus[I], Y is Cantus[I-1], (X - Y #\= 6; X - Y #\= 18), X2 is Discantus[I-1], Y2 is Cantus[I], (X2 - Y2 #\= 6; X2 - Y2 #\= 18) ). opposite_mov_melodic_jumps(Melody, N):- (for(I, 3, N-1), param(Melody) do X is Melody[I-1], Y is Melody[I-2], (X - Y > 3 -> Melody[I] #< X + 3; true), (X - Y < -3 -> Melody[I] #> X - 3; true) ). hold_min_2_bars_4_5_8_melodic_jumps(Melody, N):- A is Melody[2], B is Melody[1], (perfectConsonantInterval(A, B) -> abs(Melody[3] - Melody[2]) #\= abs(Melody[2] - Melody[1]); true), (for(I, 4, N), param(Melody) do X is Melody[I-2], Y is Melody[I-3], (perfectConsonantInterval(X, Y) -> ( abs(Melody[I] - Melody[I-1])

#\= abs(Melody[I-2] - Melody[I-3]), abs(Melody[I-1] - Melody[I-2])

#\= abs(Melody[I-2] – Melody[I-3]) ); true) ). no_parallel_4_5_8_melodic_interval_jumps(Cantus, Discantus, N):- (for(I, 2, N-1), param(Cantus, Discantus) do X is Discantus[I], Y is Discantus[I-1], X1 is Cantus[I], Y1 is Cantus[I-1], Interval is X1 - Y1, AbsInterval is abs(Interval), ( (AbsInterval == 5; AbsInterval == 7

; AbsInterval == 12) -> X - Y #\= Interval; true) ). max_3_consecutive_thirds(Discantus, Cantus, N):- (for(I, 5, N-1), param(Cantus, Discantus) do X is Discantus[I], Y is Cantus[I], X1 is Discantus[I-1], Y1 is Cantus[I-1], X2 is Discantus[I-2], Y2 is Cantus[I-2], X3 is Discantus[I-3], Y3 is Cantus[I-3], ((intervalThird(X1, Y1); intervalThird(X2, Y2)

; intervalThird(X3, Y3)) -> \+ intervalThird(X, Y) ; true) ).

Page 48: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

4

max_3_consecutive_sixths(Discantus, Cantus, N):- (for(I, 5, N-1), param(Cantus, Discantus) do X is Discantus[I], Y is Cantus[I], X1 is Discantus[I-1], Y1 is Cantus[I-1], X2 is Discantus[I-2], Y2 is Cantus[I-2], X3 is Discantus[I-3], Y3 is Cantus[I-3], ((intervalSixth(X1, Y1); intervalSixth(X2, Y2)

; intervalSixth(X3, Y3)) -> \+ intervalSixth(X, Y) ; true) ). opposite_mov_melodies_for_5_8_harmonic_int(Cantus, Discantus, N):- (for(I, 2, N-1), param(Cantus, Discantus) do X1 is Discantus[I], X2 is Discantus[I-1], Y1 is Cantus[I], Y2 is Cantus[I-1], (intervalFifthOrOctave(X1, Y1) -> oppositeMelodicMovement(X1, X2, Y1, Y2) ; true) ). n1_n2_no_8_harmonic_int(Cantus, Discantus):- X1 is Discantus[1], Y1 is Cantus[1], X2 is Discantus[2], Y2 is Cantus[2], ((X1 - Y1 == 12; X1 - Y1 == 24) -> (X2 - Y2 #\= 12, X2 - Y2 #\= 24); true). n1_n2_no_8_harmonic_int2(Cantus, Discantus, N):- X1 is Discantus[N-1], Y1 is Cantus[N-1], X2 is Discantus[N-2], Y2 is Cantus[N-2], X1 - Y1 #\= 12, X1 - Y1 #\= 24, X2 - Y2 #\= 12, X2 - Y2 #\= 24. hold_min_2_bars_5_harmonic_int(Cantus, Discantus, N):- (for(I, 3, N-1), param(Cantus, Discantus) do X is Discantus[I], Y is Cantus[I], X2 is Discantus[I-2], Y2 is Cantus[I-2], Interval is X2 - Y2, ((Interval == 7; Interval == 19) -> (X - Y #\= 7, X - Y #\= 19); true) ). hold_min_2_bars_5_harmonic_int2(Cantus, Discantus):- X1 is Discantus[1], Y1 is Cantus[1], X2 is Discantus[2], Y2 is Cantus[2], ((X1 - Y1 == 7; X1 - Y1 == 19) -> (X2 - Y2 #\= 7, X2 - Y2 #\= 19); true).

Page 49: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

5

hold_min_2_bars_8_harmonic_int(Cantus, Discantus, N):- (for(I, 3, N-3), param(Cantus, Discantus) do X is Discantus[I], Y is Cantus[I], X2 is Discantus[I-2], Y2 is Cantus[I-2], Interval is X2 - Y2, ((Interval == 12; Interval == 24) -> (X - Y #\= 12, X - Y #\= 24); true) ). validate_cantus_firmus_cadence(Cantus, N):- Intervalo is Cantus[N] - Cantus[N-1], (Intervalo #= -1 ; Intervalo #= -2). discantus_cadence(Discantus, N):- Intervalo is Discantus[N] - Discantus[N-1], (Intervalo #= 1 ; Intervalo #= 2). validate_cantus_firmus_musical_mode(Cantus):- X is Cantus[1], (supported_music_modes(X) -> true; false). validate_cantus_firmus_lenght(N):- ((N >= 7, N <= 17) -> true; false). /* Aux Functions */ perfectConsonantInterval(X, Y):- Interval is X - Y, AbsInterval is abs(Interval), ((AbsInterval == 5; AbsInterval == 7; AbsInterval == 12; AbsInterval == 17; AbsInterval == 19; AbsInterval == 24)

-> true; false). intervalThird(X, Y):- Interval is X - Y, AbsInterval is abs(Interval), ((AbsInterval == 3; AbsInterval == 4; AbsInterval == 15; AbsInterval == 16) -> true; false). intervalSixth(X, Y):- Interval is X - Y, AbsInterval is abs(Interval), ((AbsInterval == 8; AbsInterval == 9; AbsInterval == 20; AbsInterval == 21) -> true; false). intervalFifthOrOctave(X, Y):- Interval is X - Y, AbsInterval is abs(Interval), ((AbsInterval == 7; AbsInterval == 12; AbsInterval == 19; AbsInterval == 24) -> true; false).

Page 50: RESOLUCIÓN DE CONTRAPUNTO DE PRIMERA …opac.pucv.cl/pucv_txt/txt-6500/UCE6637_01.pdf3.1 Contrapunto: definición y contexto histórico Del latín punctus contra punctum (nota contra

6

oppositeMelodicMovement(X1, X2, Y1, Y2):- DiscantusInterval is X1 - X2, CantusInterval is Y1 - Y2, ((DiscantusInterval > 0, CantusInterval < 0); (DiscantusInterval < 0, CantusInterval > 0)). supported_music_modes(X):- X == 0; X == 2; X == 5; X == 7; X == 9; X == 12; X == 14; X == 17; X == 19; X == 21; X == 24; X == 26; X == 29; X == 31; X == 33; X == 36; X == 38; X == 41; X == 43; X == 45.