reporte de actividades semestre 2011-1...analizador de registro este algoritmo se encarga de...
TRANSCRIPT
REPORTE DE ACTIVIDADES
Semestre 2011-1
I. DATOS GENERALES y ACADÉMICOS
Nombre del alumno:
Mijael Gutiérrez López
Programa de estudios:
Doctorado en Música – Tecnología Musical Escuela Nacional de Música Universidad Nacional Autónoma de México
Título de la Tesis:
AGENTES INFORMÁTICOS EN SISTEMAS DE INTELIGENCIA ARTIFICIAL PARA LA
CREACION DE APLICACIONES DE CÓMPUTO MUSICAL.
Director de Tesis:
Dr. Felipe Orduña Bustamante
Comité Tutoral:
Dr. Antonio Corona Alcalde
Dr. Felipe Orduña Bustamante
Dr. Pablo Padilla Longoria
AVANCES DE INVESTIGACIÓN S. 2010-2
La actividad de éste semestre se ha centrado en la implementación
informática operativa que arroje los primeros resultados, en la definición final de los
procesos de cooperación entre agentes y la fundamentación teórica de los procesos
cognitivos que se utilizaron para resolución de el análisis melódico.
ESTRUCTURACIÓN FINAL DE LA APLICACIÓN.
La estructura Final del Algoritmo queda definida entonces de la siguiente manera:
ALGORITMO GENERAL
• Analizador armónico
• Generador de datos armónicos
• Analizador de registro
• Generador de base de datos de registro
• Analizador de tesituras
• Generador de base de datos de tesitura
• Analizador rítmico-melódico
• Generador de datos de alturas
• Generador de datos de tiempos relativos proporcionales
• Generador de datos ritmico-melódicos correlacionados
SECCIÓN DEL LECTOR
El esquema general del lecotr se ha reestructurado de la siguiente forma:
Analizador Armónico
Esta sección del lector se encarga de recopilar los datos de la armonía presente en
el archivo analizado. Basa su análisis en el método de pitch class para localizar las
formas ideales así como los vectores interválicos presentes. El análisis que realiza lo
hace por beats o tiempos de compás a lo largo de toda la pieza. Los datos
resultantes se van almacenando en forma de arreglos o arrays. En esta sección se
realiza también un registro de la tonalidad presente en la pieza (en caso de que sea
tonal).
A.rítmico
DatosRítmicos
AnalizadorEstadísticoRítmo
AnalizadorRítmico‐Melódico
B.dedatosEstadísticasRitmo
B.dedatosRítmico‐Melódico
AnalizadorArmónico
DatosArmónicos
Relacionmelódica‐Armónica
B.DatosEstadísticasMelódica‐Armónica
Inspectores
Analizador de registro
Este algoritmo se encarga de analizar el registro dentro del cual se mueve la pieza
analizada. Realiza un análisis de las notas más altas y más bajas y establece un
promedio, además de que realiza un análisis de el comportamiento ascendente o
descendente que pueda tener.
Analizador de tesituras.
Utilizando los datos de las notas extremas, en cuanto altura se refiere, se establece
también el rango de notas máximo y mínimo en cada sección de la pieza, de esta
manera se tiene información sobre cuanto se extiende y se contrae el rango de
notas a lo largo de la pieza y en relación a la tessitura máxima de la misma.
Analizador Rítmico-Melódico
El analizador rítimico melódico se basa en procesos cognitivos y correlaciona datos
de ritmo con alturas.
Primeramente identifica tanto frases como motivos rítmicos delimitándolos
claramente y posteriormente busca frecuencias en los giros melódicos para
identificar patrones melódicos recurrentes.
Operación:
Para el identificador rítmico se ha implementado un sistema que consiste en
los siguientes procesos:
Codificador de duración de notas midi
La primera parte del codificado rítmico intenta leer los metadatos midi
referentes a el tipo de compás del que se trata para una mejor lectura, también se
buscará si existen indicaciones de tempo, sin embargo no es indispensable para la
codificación.
Posteriormente se toman las duraciones de las notas de cada una de las voces midi
contenidas en la pieza a analizar en milisegundos, las pequeñas variaciones que
pudiesen existir se redondean, toda nota menor a 50 milisegundos se omite.
Se ha incorporado igualmente un detector de silencios en cada una de las voces,
cuando esto ocurre se registra en la base de datos con la duración y un indicador
que establece que se trata de un silencio.
Debido a que la duración se toma en tiempo midi absoluto no se considera relevante
establecer un tiempo relativo1.
Se realiza una reducción de los tiempos comenzando por los más pequeños y
establecer cuál es la duración más pequeña, se examina también la relación entre
los tiempos para establecer si se trata de divisiones ternarias o binarias, aunque
esto pudiera no ser relevante.
Se realiza una reducción de los tiempos para que el tiempo más pequeño tenga una
duración de unidad
Se comienza con el análisis de los datos rítmicos para buscar patrones, éste
comienza localizando y marcando todas las duraciones iguales precedidas de un
silencio, una nota muy larga, proporcionalmente hablando, o en el caso de la primer
nota del primer compás, eso es importante debido a que de otra manera el sistema
podría caer en un ciclo muy largo tratando de identificar todas las posibilidades
combinatorias.
Una vez establecidas las duraciones iguales se procede a analizar la duración de las
notas subsecuentes hasta llegar donde comienza otro marcador y se lleva una
relación de las que posean un patrón similar, se obtiene una relación estadística de
la recurrencia de ciertas figuras para descartar las mas altas y las mas bajas
Ej:
Identificación de notas similares a partir de la primera nota o después de un silencio
1 Esto se revisará según los resultados
Al finalizar se han obtenido los datos rítmicos:
La figura:
Figura Recurrencia %
qh 1 .11
qq 1 .11
qxxxx 2 .22
qee 5 .55
Identificación de alturas
Cuando se identifican similitudes en los ritmos se comienza el proceso de
análisis de las alturas asociadas a las duraciones, en éste punto se obtienen datos
de si la nota subió (+1), bajo (-1) o permaneció estática (0). Los datos que posean
duraciones similares y movimientos similares se almacenan en un a base de
patrones melódicos.
Ej:
Figura Movimiento Recurrencia %
qh +1 1 .11
qq +1 1 .11
qxxxx -1, +1, +1, -1 1 .11
qxxxx -1, +1, +1, +1 1 .11
qee +1, -1 2 .22
qee 0, 0 3 .33
Reductor de proporciones
El analizador rítmico almacena datos de la duración de las notas no únicamente
absoluto sino relativo proporcional, para identificar así tendencias rítmicas y facilitar
el análisis, esto ayuda también a identificar patrones aún cuando existan cambios de
tempo a lo largo de la pieza musical analizada.
Ej.
1=Redonda, 2=Blanca, 4=negra, 8=Corchea, 16=fusa
De ésta manera si tenemos combinaciones como:
Tenemos datos como:
1) 4,4,2 y 16,16,8 forma reducida: (2:2:1)
2) 8,4,8 y 16, 8, 16 forma reducida: (2:1:2)
3) 8,8,4,8,8 y 16 forma reducida: (2:2:1:2:2)
La forma reducida sirve para indicar que hay presencia de patrones proporciones
rítmicas fijas y facilita la construcción de patrones. Al igual que en el analizador
melódico las lecturas se toman de un silencio al otro.
En esta sección también se registra el tempo y compás en la que se encuentra la
pieza analizada.
EVALUADOR ESTADÍSTICO
En principio del proyecto, se había contemplado un medidor estadístico que se
encargara de obtener todas las estadísticas necesarias para establecer frecuencias,
en especial para identificar los patrones melódicos; no obstante, debido a que todos
los procesos de identificaión se modificaron de la idea original, en especial el
analizador melódico y, de hecho, estos ya arrojan sus propias estadísticas, el
medidor original se ha modificado, no obstante, éste sigue teniendo un papel
relevante pues la correlación de todo éstos datos servirán para definir los estados de
satisfacción de los agentes inspectores del generador y, por ende, el
comportamiento del sistema en lo que se refiere al los estilos musicales
reproducidos también ha sufrido modificaciones desde su concepción inicial.
Ha sido necesario dividir los datos estadísticos en 2 grupos:
Estadísticas para los generadores y estadísticas para los inspectores. Hasta este
punto los datos requeridos que se almacenan en una base de datos son los
siguientes:
• Estadísticas de agentes generadores.
Éstas estadísticas son importantes porque establecen las probabilidades con las que
trabajarán las gramáticas de los agentes. Y son:
• Probabilidad armónica. En ésta se incluyen todas las
combinaciones de notas y se establece la frecuencia con la que
aparece.
p. ej: ([047],[60]) significa que la combinación [0,4,7] (podría se C,E,G) aparece con una
frecuencia del 60%.
• Probabilidad rítmica. Semejante a la anterior lee la frecuencia con
la que un arreglo rítmico aparece.
• Estadísticas de Agentes Inspectores.
Éstas estadísticas son las que generarán los estados de satisfacción y contienen
datos del tiempo relativo2 o al número del evento midi pues varían en el tiempo.
• Combinaciones rítmico-melódicas. Ésta contiene datos del tiempo
corriente, datos de la combinación rítmico-melódica.
Ej: ([40] [0 2 4] [11211]) Significa que en el evento número 40, la combinación rítmico-
melódica deberá ser: [0,2,4] (podría ser (C,D,E) en las notas y [11211] en el ritmo (podría ser
eeqee) .
Es importante tomar en cuenta que aunque el número de evento se va contabilizando de 1
en 1 la combinación se mantiene vigente hasta que se terminen de ejecutar todas las notas
de los datos melódicos. Ésto quiere decir que los siguientes datos bien podrían tener un
número no consecutivo (por ejemplo el siguiente arreglo de datos podría ser [50] [047] [122])
• Combinaciones rítmico-armónicas. Se ha eliminado ésta función
• Combinaciones melódico-armónicas. Esta función es muy
importante pues se encarga de elegir las combinaciones
adecuadas para que la melodía y la armonía se combinen
adecuadamente.
Ej. ([ 0 2 4 5 7] ([0 4 7] [ 7 11 2])) Significará que la melodía estará conformada por las notas
0,2,4,5,7 y será construida sobre los acordes 0,4,7 y 7,11,2.
Se tendrán seis inspectores encargados de distribuir la información para asegurar
que el flujo de datos permanesca constante o de lo contrario de detiene el proceso.
Generador
La sección del generador ha sufrido modificaciones debido a los tipos de
datos que utilizara la manera en que procesa la información será:
• Recibe algunos parámetros importantes por parte del usuario como Tempo,
Compás, Clave y Registro (por octavas). De manera predeterminada, los
parámetros se ajustan de acuerdo con los datos obtenidos del lector. Otros
parámetros que se ajustan son el program change o tipo de instrumento.
2Tiemporelativoserefierealtiempomedidoencompásygolpe(bar&beat).
• El lector de datos recibe la información de la base de datos para establecer
así el comportamiento que tendrá la pieza generada (funciones de
distribución). De esta manera se establece:
o Cuáles serán las relaciones interválicas predominantes en la armonía
de la pieza generada (normal form)
o Cuáles serán las relaciones o os giros melódicos predominantes.
o Cuáles serán las figuras rítmico-melodicas predominantes así como
los patrones interválicos (forma reducida)
o Cual es el rango, y la tessitura así como la distancia entre las voces
extremas.
• El constructor consta de los siguientes puntos:
o Elije, de acuerdo a cierta probabilidad establecida en el analizador
estadístico, uno de los vectores interválicos y genera una
combinación de notas que se ajustan de manera similar.
o Elije algunos patrones rítmicos-melódicos registrados en la base de
datos de acuerdo con las probabilidades establecidas en las formas
reducidas.
o Elije vectores de forma ideal (normal form) para la construcción de
motivos rítmico-melódicos
• El reproductor ejecuta en tiempo real todos los datos midi generados y
contiene además una opción para grabar el archivo midi resultante.
PERFECCIONAMIENTO DEL SISTEMA MULTIAGENTE
El sistema multiagente no ha sufrido modificaciones mayores, sin embargo, se han
realizado agregados y algunas correcciones importantes desde su implementación original.
Es un sistema constituido por un grupo de agentes reactivos cuyas tareas se encuentran
predefinidas desde su programación, y las tareas son repartidas de acuerdo a una
organización mixta.
ORGANIZACIÓN
La parte central del Sistema Multiagente se encuentra englobado en la sección del
constructor, en ésta se encuentran contenidos los agentes resonsables de realizar tareas,
mostrar resultados y buscar la aceptación. Su estructura organizativa se encuentra
distribuida de la siguiente manera:
• Agentes Inspectores que se encuentan dentro de un Generador Rítmico-Melódico y
un Generador Armónico-Melódico. Éstos agentes son los encargados de solicitar las
tareas a otros agentes y establecer los estados de satisfacción de acuerdo con la
base de datos estadístico de las piezas analizadas.
• Tres conjuntos de agentes contract net encargados de realizar las tareas de
generación de Ritmo, Melodía y Armonía de acuerdo a las bases de datos obtenidas
de los analizadores, éstos a su vez buscan establecer un estado que satisfaga a los
inspectores correspondientes, es importante establecer que existe la comunicación
entre ellos para evitar que existan resultados duplicados.
De esta manera se estructura un sistema mixto de estructura semi-jerárquica que
contiene dos agentes con jererquía alta, pero iguales entre sí y tres conjuntos de agentes de
jerarquía baja pero igualitaria entre sí.
ESTADOS DE SATISFACCIÓN
Los estados de satisfacción son establecidos por los agentes Inspectores, éstos
estados son de gran relevancia ya que dentro de los conjuntos de generadores tanto
rítmicos, melódicos y armónicos los agentes compiten por para ser elejidos por el inspector.
Los inspectores también se encargan de decidir si un material generado, sea una melodía,
armonís o rítmo, cumple con los requerimientos en relación a duraciones, tesitura, y altura de
las notas. Los estados de satisfacción establecidos por los inspectores dependen de las base
de datos estadísticos.
Ejemplo:
Cada vez que se genera un ritmo y una melodía, se parean los resultados y se comparan en una matriz de estados, si el par satisface los requerimentos se envía el resultado, si no satisface el resultado se busca otro ritmo u otra melodía generado por otro agente, cada vez que un resultado es rechazado, el agente descartado envía la información a los demás agentes para que eviten dar resultados similares y así, eventualmente se llegará a un par único, evitando con esto los ciclos infinitos y la congelación del sistema.
P.ejemplo:
De esta manera se establece que el estado de satisfacción se consigue con los resultados arrojados por el agente (X.b) y el agente (Y.a).
Ahora bien, suponiendo que los valores son:
X1 = [ 121121] , Y3 = [ 047 ];
Ésto querrá decir que el inspector “aprobara” la entrada de ritmos como:
Estadosdesatisfacción
EstablecidosInspector
x1,y1 x2,y1 x3,y1
x1,y2 x2,y2 x3,y2
x1,y3 x2,y2 x3,y3
Agente(Y.a)[Melodía]
y1 y1 y1
Agente(Y.b)[Melodía]
y2 y2 y2
Agente(X.a)[Ritmo]
x1
x1
x1
Agente(X.b)[Ritmo]
x2
x2
x2
ya que todos obedecen a la misma proporción [1121111211].
E intervalos melódicos como:
Ya que todos tienen la misma Forma Normal [047].
Entonces si se generara un material como:
Cumpliría con los estados de satisfacción establecidos.
COORDINACIÓN
Como ya se mencionó, la comunicación entre los estados de aceptación-rechazo de los
resultados de cada agente es importante porque ayuda a establecer los comportamientos del
sistema además de que evita que se lleguen a ciclos infinitos, éstos estados pueden estar
determinados simplemente por:
0-rechazo, 1-aceptación
De ésta manera si un agente es rechazado envía la información de su resultado a los demás
para que éstos eviten el mismo resultado y vuelvan a generar otro o se excluyan. Por otro
lado, si un agente es aceptado envía la información a los demás para que registren el
resultado y detengan sus propuestas.
LENGUAGE. (Sistema de comunicación entre agentes)
Uno de los puntos más relevantes en la estructuración del sistema multiagente ha
sido la delimitación del lenguaje a utilizar.
En un principio se consideró la utilización de lenguajes de sistemas multiagentes ya
elaborados con lo que se podía simplificar la programación, como es el caso de
KQML(Knowledge Query and Manipulation Language) no obstante, dada la arquitectura del
sistema, y que el modelo de agentes se basa en agentes reactivos el establecimiento de un
método de comunicación simple, numérico es mucho más adecuado, sencillo y flexible. Otra
de las ventajas es que se pueden asignar diferentes “pesos” de acuerdo al número
trasmitido.
DESCRIPCIÓN
El método de intercomunicación entre los agentes es muy simple:
a. Cuando un inspector desea solicitar ofertas a los agentes generadores envía un
mensaje en forma de “Bang”.
b. Una vez recibida la petición, los agentes generan su material y lo envían a los
inspectores en forma de arreglo numérico o de cadena de texto.
c. El inspector lo compara con los estados de satisfacción y los acepta o los rechaza, si
el material fue aceptado el inspector envía una contestación al agente en una clave
numérica (1 aceptado, -1 rechazado).
d. Inmediatamente el agente envía a los demás un mensaje que contiene dos datos: el
estado de aceptación o rechazo y la cadena que envió (p. ej. [1] [ 0 3 7]). Esta
información de rechazo o aceptación se suma de tal manera que funciona como un
“peso” de una neurona en una red. Esto evita el proceso que se había sugerido al
principio del modelado del sistema donde los agentes deben “autocorregir” sus
probabilidades de Markov, basta entonces con que se ajusten sus pesos al recibir la
información de los demás para ir generando una tendencia e ir modelando el
comportamiento.
Cabe aclarar que en éste último punto eventualmente todos los agentes terminarían
con exactamente los mismos valores. Para conservar la variedad en los resultados la
información sobre las cadenas aceptadas se dan en Prime Form en vez de Normal
Form. Esto permite que aún dos cadenas distintas puedan ser aceptables.
Ej.
Cadena en Normal Form Cadena en Prime Form [ 0 4 7 ] [ 0 3 7 ] [ 10 3 7 ] [ 0 3 7 ] [ 7 3 0 ] [ 0 3 7 ]
[ 0 8 5 ] [ 0 3 7 ] Aunque las cadenas son distintas todas tienen el mismo Prime Form.
IMPLEMENTACIÓN EN MAX/MSP
Para poder establecer con claridad los resultados del sistema por el momento se ha
realizado una programación independiente para el generador en un patch diferente al del
analizador, no obstante utiliza los datos generados por éste último.
Se trabaja en relación a unos archivos de texto que contienen la información sobre la
armonía, los patrones melódicos, los datos sobre rangos, tesituras, frecuencia de silencios y
cadencias. La programación se empaqueta en objetos de
javascript.
Una mejora importante consiste en que cada agente que se agrega es capáz
de autoidentificarse para diferenciarse de sus “colegas”, pero además son capaces
de ubicarse en un entorno por medio de coordenadas de tal manera que conocen la
“cercanía” o “lejanía” de los otros lo cual hace que el sistema trabajo no sólo en
función de la comunicación entre los mismos sino que exista un tipo de interacción
con el entorno que modifica la manera en que éstos interactúan entre si arrojando
mayor variedad en los resultados obtenidos.
BIBLIOGRAFÍA
Los métodos implementados para la programación del algoritmo fueron ideados en
relación a investigaciones cognitivas referentes a el reconocimiento de las formas
rítmicas y de patrones melódicos. Se realizó una investigación exhaustiva de las
teorías descritas y se utilizaron algunos de los modelos para elaborar el algoritmo.
Los artículos que se pueden destacar se mencionan a continuación:
BACHORIK,JUSTINPIERRE;BANGERTMARC.EMOTIONINMOTION:INVESTIGATINGTHETIME‐COURSEOFEMOTIONALJUDGMENTSOFMUSICALSTIMULI.EnMusicPerceptionVOLUME26,ISSUE4,PP.355–364.UNIVERSITYOFCALIFORNIAPRESS.2009HTTP://WWW.UCPRESSJOURNALS.COM/REPRINTINFO.ASP.DOI:10.1525/MP.2009.26.4.355
GUNTERKREUTZ;EMERYSCHUBERT;LAURAA.MITCHELL.COGNITIVESTYLESOFMUSICLISTENING.EnMusicPerceptionVOLUME26,ISSUE1,PP.57–73.UNIVERSITYOFCALIFORNIAPRESS.2008HTTP://WWW.UCPRESSJOURNALS.COM/REPRINTINFO.ASP.DOI:10.1525/MP.2008.26.1.57
AMBERM.LEAVER&ANDREAR.HALPERN.EffectsofTrainingandMelodicFeaturesonModePerception.En:MusicPerception,Vol.22,No.1,117–143.UNIVERSITYOFCALIFORNIAPRESS.Fall2004
HELLMUTHELIZABETH.AModelofMelodicExpectation.En:MusicPerception.Vol.22,No.4,663–714.UNIVERSITYOFCALIFORNIAPRESS.Summer2005.
StorinoMariaTeresa;Dalmonte,Rossana;Baroni,Mario.ANINVESTIGATIONONTHEPERCEPTIONOFMUSICALSTYLE.En:MusicPerceptionVOLUME24,ISSUE5,PP.417–432.CALIFORNIAPRESS.2007.KOPIEZREINHARDAND.PLATZFRIEDRICH.THEROLEOFLISTENINGEXPERTISE,ATTENTION,ANDMUSICALSTYLEINTHEPERCEPTIONOFCLASHOFKEYS.MusicPerceptionVOLUME26,ISSUE4,PP.321–334.UNIVERSITYOFCALIFORNIAPRESS.2005
CONCLUSIONES
A este punto, se ha comprobado que el sistema planteado en un inicio, es
posible. Una implementación funcional basada en un sistema distribuido es capaz
de operar y arrojar resultados utilizando tan sólo una fracción mínima de recursos
informáticos lo que lo vuelve un sistema ideal para trabajar en tiempo real.
Aunque los resultados arrojados analizados desde un punto de vista
“musical”, aún pueden considerarse algo burdos es posible optimizar los procesos
para mejorar los resultados.
El primer punto es una revisión profunda en la sincronización de los procesos, pues
se ha observado que algunos de los elementos musicales generados por los
agentes “constructores” en la mayoría de las ocasiones no concuerda con las
armonías ni los tiempos generado por los demás agentes aún cuando en el proceso
reciben la misma información por parte de los “inspectores”, la falla consiste en un
desfase en el momento de generar los resultados.
El etapa última entonces para la finalización y consolidación del proyecto
consiste en idear e implementar un sistema de sincronización, que permita que los
datos armónicos y te acentos concuerden para establecer armonías claras. Para
esto podría establecerse una especie de “reloj” de sincronización que se asegure de
que los “inspectores” permitan el paso de los datos simultáneamente o bien
utilizando un tipo de “compuerta” que no permita el paso de los datos hasta que
todos los “generadores” hayan terminado de arrojar sus resultados. Este proceso no
se muestra como algo muy complejo por lo que no se estima que deba absorber
mas tiempo del estimado para la conclusión total del proyecto.