Archive for the ‘ Programación ’ Category

Aplicación básica en ASP – Clasp & Gringo parte 1

Como adelanté en el post pasado, una de las herramientas para mi tesis de maestría es el uso de ASP (Answer Set Programming) además de CSound y herramientas de ANTON 1.0 o superior. Dicha herramienta utiliza dos utilerías de ASP llamados Clasp (Solver) y Gringo (Grounder).

Estuve estudiando la sintaxis y tiene parecido con otros Solvers como DLV el cuál ya lo he probado, entre otros. Además les comparto mi experiencia en este nuevo enfoque de ASP desarrollado en la Universidad de Potsdam, Alemania (Potassco).

En esta primera parte les haré un pequeño tutorial de como instalarlos en Windows y lo que necesitan para empezar a trabajar con ASP. Existen todos los archivos para trabajar con estos ASPs en tu plataforma favorita pero me concentraré en Windows (en mi caso los probé en Windows 7). Primero que nada descarguen tanto Clasp como Gringo y como sugerencia editen los nombres de ambos archivos, en lugar de Clasp 1.3.4 solamente déjenlo en «Clasp» y lo mismo para Gringo.

Coloquen ambos ejecutables (.exe) en un solo directorio el cual no muevan seguido ya que vamos a tomar esa dirección y colocarla en el «Path» de las variables de entorno del sistema, por ejemplo esta es mi ruta: C:\Users\Fleiv\Desktop\Papers\Clasp ASPs Potsdam y dentro de «Clasp ASPs Potsdam» se encuentran mis ejecutables.

Una vez agregadas al Path del sistema abrimos una ventana de consola (cmd) y el directorio por default escribimos «gringo» y damos enter. Si se queda esperando el sistema y pareciera que se trabó, es porque se quedó esperando una entrada, pero quiere decir que ya están instalados y listos para usarse. Para regresar a la línea de comandos solo apretamos Ctrl + C.

En el siguiente post pasaremos a lo divertido… nuestra primera aplicación con Clasp y Gringo…

Composición de Música Trance usando Answer Sets Programming (ASP).

Saludos a todos y primero que nada regreso a la blogosfera con este post, nada mas y nada menos que mi propuesta de tesis… Estaré escribiendo en DigDes en español y proximamente en flavioeverardo.com en inglés… (ando trabajando todavía en el nuevo sitio).

Espero que les agrade…. y por cierto necesito un nombre para mi herramienta y aun no me he decidido… alguna propuesta?

Flavio Omar Everardo Pérez – Maestría en Ciencias de la Computación.

Asesor: Dr. Mauricio Javier Osorio Galindo

Co-Asesor: Dr. Fernando Antonio Aguilera Ramírez

Descripción:

El trabajo de investigación a realizar corresponde a un vínculo entre la computación como ciencia  y  la música como arte. La intención de esta tesis es diseñar e implementar una base musical, con la finalidad de poder reutilizar la misma en sesiones y grabaciones de estudio para diversos tipos de formatos de audio.

Tomando como fuente de inspiración las bases musicales de algunas canciones de género Trance ()en versiones extendidas con el sello discográfico que distingue a Armada Records (), mismo que contempla ciertas características esenciales, se propone desarrollar una herramienta provista de ciertas reglas y parámetros para realizar la toma de decisiones al momento de componer una pieza musical.

El objetivo general  corresponde al  diseño e implementación de una plantilla personal (canción en formato de audio) inspirada en la base musical de género Trance (en sus versiones extendidas) de Armada Records, utilizando Answer Sets Programming (ASP) mismo que se emplea en los sistemas de composición musical de ANTON [Boenn et al. 2008].

Herramientas a utilizar:

  • Answer Sets Programming (ASP) es un paradigma de programación que facilita una gamma de respuestas para atender a distintos propósitos, en este caso la composición de música Trance.
  • CSound, es un paquete de software orientado a crear, editar, analizar y componer música y sonido. Está basado como su nombre lo indica en el lenguaje C, ésta herramienta es utilizada en las distintas versiones de ANTON.

Tabla 1. Comparativa entre ANTON y Propuesta de Trabajo

ANTON Propuesta de Trabajo
Herramienta para composición musical en estilo “Palestrina Rules” for Renaissance music. Herramienta para composición musical en estilo Trance, específicamente para versiones extendidas.
Empleo de ASP como motor de lógica para ajustarse a las reglas de dicho estilo musical. Empleo de ASP como motor de lógica para ajustarse a las reglas de dicho estilo musical.
Empleo de CSound como sintetizador musical. Empleo de CSound como sintetizador musical con la diferencia en los instrumentos, efectos, sonidos… empleados.

Referencias:

Boenn, G., Brain, M., Vos, M., and Ffitch, J. 2009. ANTON: Composing Logic and Logic Composing. In Proceedings of the 10th international Conference on Logic Programming and Nonmonotonic Reasoning (Potsdam, Germany, September 14 – 18, 2009). E. Erdem, F. Lin, and T. Schaub, Eds. Lecture Notes In Artificial Intelligence, vol. 5753. Springer-Verlag, Berlin, Heidelberg, 542-547. DOI= http://dx.doi.org/10.1007/978-3-642-04238-6_55

Boenn, G., Brain, M., Vos, M., and Ffitch, J. 2008. Anton: Answer Set Programming in the Service of Music. In Proceedings of the Twelfth International Workshop on

Non-Monotonic Reasoning (Sydney, Australia, September 13 – 15, 2008). 85-93 http://www.cse.unsw.edu.au/~kr2008/NMR2008/nmr08.pdf

Boenn, G., Brain, M., Vos, M., and Ffitch, J. 2008. Automatic Composition of Melodic and Harmonic Music by Answer Set Programming. In Lecture Notes in Computer Science, 2008, Volume 5366/2008, 160-174, DOI: 10.1007/978-3-540-89982-2_21

http://www.springerlink.com/content/rj422j5831w0278m/

Boenn, G., Brain, M., Vos, M., and Ffitch, J. 2008. Automatic Composition of Melodic and Harmonic Music by Answer Set Programming. In Proceedings of the 24th international Conference on Logic Programming (Udine, Italy, December 09 – 13, 2008). M. Garcia De La Banda and E. Pontelli, Eds. Lecture Notes In Computer Science, vol. 5366. Springer-Verlag, Berlin, Heidelberg, 160-174. DOI= http://dx.doi.org/10.1007/978-3-540-89982-2_21

Corrêa, D. C., Levada, A. L., Saito, J. H., and Mari, J. F. 2008. Neural network based systems for computer-aided musical composition: supervised x unsupervised learning. In Proceedings of the 2008 ACM Symposium on Applied Computing(Fortaleza, Ceara, Brazil, March 16 – 20, 2008). SAC ’08. ACM, New York, NY, 1738-1742. DOI= http://doi.acm.org/10.1145/1363686.1364101

Kirke, A. and Miranda, E. R. 2009. A survey of computer systems for expressive music performance. ACM Comput. Surv.42, 1 (Dec. 2009), 1-41. DOI= http://doi.acm.org/10.1145/1592451.1592454

Roads, C. 1985. Research in music and artificial intelligence. ACM Comput. Surv. 17, 2 (Jun. 1985), 163-190. DOI= http://doi.acm.org/10.1145/4468.4469

Roads, C., Strawn, J., Abbott, C., Gordon, J., and Greenspun, P. 1996 The Computer Music Tutorial. MIT Press.

Rousseaux, F. and Bonardi, A. 2003. New tools and practices for electronic music distribution. In Proceedings of the 1st international Symposium on information and Communication Technologies (Dublin, Ireland, September 24 – 26, 2003). ACM International Conference Proceeding Series, vol. 49. Trinity College Dublin, 242-248.

Boulanger, R. (ed.): The Csound Book: Perspectives in Software Synthesis, Sound Design, Signal Processing and Programming.

MIT Press, Cambridge (2000)

Back soon…

Así es mi proposito de este mes es volver  a escribir al blog, y en esta ocasión creo que será con pequeños tutoriales de Objective-C , así que esten pendientes,

Saludos

SurferMx

Agenda a distancia

Esta es una aplicación que consiste en una agenda a distancia, quiere decir que el cliente se comunica con el servidor y le manda las peticiones (titulo de la lista), la fecha y la tarea. Se pueden almacenar varias listas y muchas tareas por lista. Se puede buscar elementos por título o por fechas.

flavioeverardo

130500

Universidad de las Américas Puebla

El  código esta disponible en mi sitio web http://flavioeverardo.com

por los que yo voto o compro, son estos:

1) Rafael Rodríguez Montes

2) Daniel Pedraza Arcega

3) Daniel Valderrábano Ceja

Piedra, Papel o Tijeras en J2ME

Mi nombre es Daniel Valderrabano Ceja ID 131236 y esta es mi aplicación para el proyecto final se trata acerca del popular juego de piedra, papel o tijeras que muchos de nosotros probablemente hemos jugado. Para poder ejecutarla es necesario tener las librerias de J2ME y el wireless toolkit de Java.

Seguir leyendo

Desktop Twitter en C#/ Cliente de Twitter en C#

Hola a todos, saludos y gracias por seguir visitando DigDes. Hoy les traigo algo que les puede interesar especialmente a la comunidad Twittera y a los desarrolladores en C#, les presento una introducción de lo que sería una aplicación de Twitter para tu escritorio.

Primero que nada necesitamos nuestro ambiente de desarrollo en C#, yo estoy usando el Visual Studio 2008 Express (luego instalaré la versión Professional). Después necesitamos bajar la librería con la que vamos a trabajar, yo uso una que se llama Twitterizer v 1.0.1.96 y puedes buscarla aquí…. Encontrarás que bajas 2 archivos, uno que se llama «Twitterizer.Framework» con extensión PDB y el otro se llama «Twitterizer.Framework.dll».

Twitterizer

Twitterizer

Una vez con estos archivos, creas un nuevo proyecto de Windows Form Application y en la barra de herramientas, en el menú de «Project» y de ahí en «Add Reference…».

menuA continuación nos aparece una ventana para añadir nuestras referencias. Nos vamos a la sección de «Browse» y localizamos nuestro archivo DLL. Una vez hecho esto podemos importar las librerías de Twitterizer a nuestro proyecto.

add references

Ahora si… estamos listos para programar… Bienvenido C#.

De entrada importamos el Framework de Twitter con:  using Twitterizer.Framework;

Esta aplicación será sencilla, solo para hacer nuestros updates en nuestra cuenta. Creamos un botón

boton

Le damos doble clic para que nos cree el evento, creamos nuestro objeto de la clase Twitter y nos damos acceso a nuestra cuenta:

//creando el objeto de twitter
twitt = new Twitter(user, pass);
//falta verificar que en efecto sea un user y un pass válidos

//creando el objeto de twitter con el username y el password como parámetros.

Twitter mi_twitter = new Twitter(«mi_username», «mi_password»);

Ahora solo falta el mensaje que se verá en la cuenta de twitter con este código:

//creando el update en la cuenta de twitter

mi_twitter.Status.Update(«Esto es una prueba de mi primer mensaje con Twitterizer»);

Y listo… ya con esto podemos crear nuestros updates desde esta aplicación. Ya posteriormente puedes crear una ventana con campos de texto que reciban el username y password, obtienes las cadenas y se lo pasas de parámetro al objeto de la clase Twitter, puedes colocar un campo donde colocar el mensaje y limitarlo a 140 caracteres para que twitter lo pueda subir, recibir updates de otros, etc.

Esto es solo el comienzo pero no es nada complicado desarrollar esta aplicación en nuestro escritorio. Al momento de correr la aplicación, le damos clic al botón y nos hace el update. Puedes colocar un MessageBox después del update para que te avise que se ha subido.

Tu imaginación es tu límite, y cualquier pregunta y/o comentario, no dudes en escribir.

Saludos al Strazz, Oz, Surfer y Chava…

flavioeverardo

Así vamos a trabajar…

Hola y saludos, gracias por seguir visitándonos.

Hoy les traigo una metodología a seguir muy dedicada al área de las TI. Todo esto salió por un proyecto en la cual ambos editores de DigDes (Daniel Valderrábano y Flavio Everardo) tenemos la oportunidad de trabajar. Y esta es la metodología que ocupamos.

Les recomendamos este video y espero que lo apliquen y si ya lo conocen y lo aplican, espero que podamos compartir opiniones y tips para mejorar la calidad de los procesos y de los resultados de cada iteración.

Saludos

flavioeverardo

PD. Saludos al Surfer (Daniel Valderrabano), Strazzulla, Oz y Chava

A jugar con Mashups

Había tenido ganas de escribir sobre Mashups desde hace como 1 mes pero no había encontrado la oportunidad hasta hoy. He experimentado con Mashups en la música y con mi afición a la Web 2.0 he integrado muchas cosas y que han sido de mi interés y espero que el suyo tambien.

Un mashup es una aplicación web híbrida es decir, como una mezcla o combinación de varias aplicaciones web (contenido y herramientas)  para crear otro nuevo sitio, todo funciona bajo el protocolo http.

Para la creación de Mashups se usan los API’s de distintos sitios web para obtener herramientas y así combinarlas.

Una nueva herramienta de la Web 2.0 que viene para revolucionar, mejorar e innovar en la web.

Les dejo con este video… espero que les guste y les interese…

ya sabemos que es un Mashup…entonces a jugar!!!!

flavioeverardo

El futuro está en «Grid Computing»

En la actualidad es necesario tener más cosas (información, herramientas, dispositivos etc.) a nuestro alcance, pero las capacidad de memoria suele ser una limitante. Es necesario contar con la información just in time (justo a tiempo) y que sea la información correcta. Es por eso que se ha emergido una nueva tecnología y se llama Grid Computing.

Así como una gran red que es Internet, Grid Computing funciona de una manera similar, el objetivo es poder encontrar información (o accesar a la información) no solo centralizada, sino distribuida es decir, accesar a la información via remota y es posible con esta tecnología compartir recursos, realizar cálculos, y almacenar información (grid data).

El grid esta integrado en un software llamado Middleware que con motores de búsqueda separa la información y asegura que la comunicación entre las máquinas en todo el mundo sea transparente. También otra de las principales tareas de este Middleware es el de separar y distribuir los threads (hilos de ejecucion) en colas de trabajo para dividir el proceso en subprocesos. una vez que cada thread haya alcanzado su destino (informacion) regresa para la unificación del (o los) recurso(s).

Para poner un ejemplo. Un ingeniero encargado de construir un puente en EU de mas de 2 KM de largo, necesita información, cálculos y resultados. en vez de dedicarse a hacer toda la tarea, instalar softwares, requerimientos de infraestructura entre otras cosas, se comunica con colegas en Inglaterra, Alemania y Japón de los cuales distribuye la información y con dichos softwares instalados fuera de su computadora, puede accesar y poder pedir el resultado, almacenar información y hasta poder verla en diferentes idiomas.

Supongamos que un científico desea realizar un experimento para probar sus teorías sobre el espacio y el universo pero la única herramienta para ello está a miles de kilómetros de su lugar de orígen hasta llegar a Suiza y así se comunica con la gente del laboratorio espacial Columbus y usar sus recursos para obtener la información requerida. En caso de que una máquina no esté disponible en ese momento existen 2 opciones, o espera a que se habilite la conexión o busca otra fuente en cualquier parte del mundo y ahí se ejecuta.

Imagínense lo que podemos construir con todo esto… es como tener un mundo de piezas de Lego a nuestro alcance.

Saludos…

flavioeverardo

El futuro de la música digital

Hola saludos, les presento mi futuro tema de tesis para maestría… ojalá les guste y si les interesa no duden en comunicarse conmigo…

Inteligencia Artificial aplicada a la música.

Introducción

Es interesante la cantidad de ramas a las cuales la IA (Inteligencia Artificial) puede no solo llegar, sino ser parte fundamental y servir como un complemento para evolucionar las distintas áreas de la vida, como por ejemplo la música.

«Music is the effort we make to explain to ourselves how our brains work…»

– Lewis Thomas

La música es el esfuerzo que hacemos para explicar cómo nuestro cerebro funciona.

Música + IA

Música + IA

Es mucha la creatividad que podemos proporcionar a un arte como la música. Esta creatividad no sólo va en la composición ni interpretación musical sino el poder aplicar la tecnología, algo como la IA.

Se han dicho muchas cosas citando que las máquinas no son inteligentes sino los que las programan. También que una máquina no puede ser como un humano por la ausencia de sentimientos, entre otras cosas. Pero la música junto con la tecnología puede descubrir cosas que el ser humano no se había esperado. Como música y computadora inteligente o mejor dicho música inteligente.

Ahora la música…

Puede descargar o ver mi «paper» desde la siguiente liga…

https://digdes.wordpress.com/wp-content/uploads/2009/05/inteligencia-artificial-aplicada-a-la-musica1.doc

Saludos…

flavioeverardo