Proyectos de Investigación - Fin de
Carrera
Los proyectos son bastante
flexibles en cuanto a alcance y pueden abordarse a diferentes niveles (e.d. carrera técnica, superior o masters).
No dudes en venir a mi oficina o mandarme un correo si estas interesado en
discutir los proyectos en mas detalle o si tienes tus propias ideas para tu
proyecto.
- Algoritmos genéticos y expresividad musical. Los algoritmos genéticos intentan imitar el proceso de
evolución genética en organismos vivos. La idea es evolucionar una
población de soluciones potenciales generando nuevas soluciones a través
de mutaciones y otras operaciones que simulan procesos genéticos en
biología. Este proyecto aborda la aplicación de algoritmos genéticos al
problema de modelar la expresividad musical.
- Generación de audio expresivo. Imagina un sintetizador capaz de generar un fichero de
audio que suene como una interpretación de Louis Armstrong a partir de un fichero MIDI. Este proyecto aborda
este problema a través de la generación de audio expresivo usando un
modelo de expresividad, mediante técnicas de procesamiento de audio.
- Identificacion de musicos basado
en su estilo expresivo. Este
proyecto aborda el problema de identificar automaticamente
diferentes interpretes a partir de audio basandose en la manera de tocar de cada interprete. El
proyecto aborda técnicas de inteligencia artificial y aprendizaje
automático.
- Clasificacion automatica de
estados cognitivos apartir de imagenes cerebrales. Este projecto aborda el
problema de clasificar automaticamente el estado
cognitivo de una persona tomando en cuenta su imagen de activacion cerebral en un instante determinado. Este
problema es importante para el
- diagnostico clínico de dificultades en processo cognitivos. El proyecto involucra el uso de tecnicas de inteligencia artificial y aprendisaje automático.
- Generación de MIDI expresivo. Este proyecto aborda el mismo problema del proyecto
anterior pero a través de la generación de MIDI expresivo usando un modelo
de expresividad. La técnica aquí es la manipulación de ficheros MIDI.
- Aprendizaje
inductivo de reglas musicales. Una de las maneras más
expresivas y comprensibles para representar conocimiento es el uso de
reglas "if-then"
(si-entonces). La programacion logica inductiva es un acercamiento al aprendizaje por
ordenador donde definiciones de relaciones son inducidas a partir de un
conjunto de ejemplos. Este proyecto explora el uso de diferentes
algoritmos de la programación lógica inductiva para aprender reglas
musicales (por ejemplo reglas para la ejecución expresiva de piezas
musicales).
- Vida artificial
y composición automática. Vida artificial es un termino
que describe diversos mecanismos computacionales usados para modelar
sistemas naturales. Este proyecto aborda el uso de la vida artificial para
generar sonido y musica.
- Implementación
de un lenguaje de programación y música. Este projecto
involucra el diseño e implementación de un lenguaje de programación y su
aplicación a generar musica.
- Variables
lógicas en Java o C. Las variables lógicas
inicialmente propuestas en programación lógica son un mecanismo útil para
sincronizar cómputos concurrentes. El objetivo de este proyecto es
implementar una extensión de Java o C con variables lógicas.
- Programación soft real-time en JAVA. Este
proyecto explora la interacción entre JAVA y un modelo formal de soft real-time. Esta interacción
facilitaría la tarea de programar sistemas de tiempo real especificando
sus requerimientos de tiempo y de concurrencia en un marco formal. El
proyecto extiende la investigación actual en esta área. La novedad esta en
el uso de restricciones temporales para especificar los requerimientos de
tiempo en un sistema en Java.
- Coordinación
de Agentes Distribuidos. El proyecto analiza
aspectos de código movil en el contexto de
sistemas orientados a objetos. Esto resulta en el uso de applets (pequeñas aplicaciones descargadas "al
vuelo" y ejecutadas en la maquina cliente) en el campo de trabajo
distribuido/cooperativo. Así pues, el objetivo del proyecto es crear una
herramienta de coordinación para Java donde la coordinación entre
diferentes hilos de ejecución u objetos distribuidos tenga lugar vía repositorios
compartidos de objetos.
- Programación
Gráfica Concurrente en JAVA. El objetivo de este
proyecto es implementar en Java una herramienta grafica para facilitar la
programación de sistemas concurrentes. Partes del código en un programa en
Java se seleccionarán y su orden de ejecución será especificado por medio
de restricciones temporales.
- Programación
Concurrente con Restricciones en Java o C.
El objetivo de este proyecto es explorar un formalismo lógico para
facilitar la tarea de escribir programas concurrentes en Java/C que sean a
la vez correctos, fiables y eficientes. La idea es incorporar las ventajas
y beneficios de la programación con restricciones al escribir programas
concurrentes en Java/C. Con esto en mente, el proyecto consiste en trabajar
en la implementación de un lenguaje de alto nivel basado en restricciones
para expresar sincronización/comunicación en programas en Java/C.
- Analisis
de Movimiento para Actuaciones de Danza y Música.
Este proyecto aplica técnicas de visión por computadora para extraer
características expresivas en el movimiento de cuerpo entero en danza. A
partir de individualizar y seguir movimientos en una imagen, la finalidad
del proyecto es generar música en sincronía con la música que en un
principio fue la generadora del movimiento.