martes, 3 de marzo de 2009

MIDI al desnudo (parte 3)

Hola todo el mundo, este día les tenemos preparado un interesante update sobre la interfaz de usuario del robot.

Como ya mencionamos en entradas anteriores, el Orcobot va a ejecutar piezas musicales previamente “cargadas” en su memoria. Sin embargo, este proceso es mucho más complejo de lo que parece. Trataremos de ser muy claros para explicarlo.

Primeramente, un archivo MIDI es cargado en la interfaz de usuario, la interfaz se encarga de decodificar e interpretar los mensajes MIDI (Ver entrada MIDI al desnudo 1). Una vez hecho esto, los valores extraídos de cada mensaje (instrucción, nota, velocidad, etc.) son enviados de forma serial al microcontrolador maestro, que los almacena en su memoria FLASH.

El programa del maestro va a ejecutar las instrucciones almacenadas en memoria y buála!! Let’s Rock!!

¿Pero como diablos le vamos a hacer para entender y descifrar un archivo MIDI?

Afortunadamente, existe bastante documentación sobre este estándar y hemos trabajado mucho en comprenderlo. Además, encontramos en la red varios códigos de prueba que nos permiten hacer la decodificación e interpretación del protocolo (Ver entrada MIDI al desnudo 2).

Impresión de pantalla de la interfaz de usuario.

Hicimos nuestra interfaz de usuario utilizando dos de estos ejemplos como base (DumpReceiver.java y DumpSequence.java). Como pueden observar en la fotografía, los datos decodificados son mostrados en la interfaz, es decir, tenemos ya las notas de la canción y la velocidad a la que deben ser ejecutadas.

Programas base para la interfaz:

DumpSequence.java
DumpReceiver.java

Despliegan el contenido de un archivo MIDI decodificado
Uso: java DumpSequence midifile

Dejamos pendiente la transmisión serial de los datos para otra entrada.

Por último, agradecemos de manera muy especial a PiKoS_NaN. Su valiosa ayuda en el proceso de diseño y desarrollo de software hizo posible esta interfaz.

Seja o primeiro a comentar

Publicar un comentario

  ©Los Orcos - Robótica Aplicada. Theme by Dicas Blogger.

TOPO