Conclusiones
Al comenzar la asignatura de Sistemas Electrónicos Digitales, creímos conveniente realizar una práctica especial en lugar de la práctica básica de la asignatura para tener la oportunidad de, además de elegir y desarrollar nuestro propio trabajo, realizar las labores ligadas a la gestión de un proyecto como son el establecimiento de objetivos y la planificación temporal y de recursos, conservando la libertad de reorientar el proyecto en torno a los áreas que consideramos de mayor interés.
Uno de los objetivos marcados era la portabilidad del programa para distintos sistemas operativos en la parte del programa en el PC, la cual está prácticamente asegurada, ya que nuestro sistema se basa en el framework del sistema operativo a través de Pure Data, disponible para multitud de sistemas operativos.
Esto permite, además de funcionar en todos los principales sistemas operativos actuales, ser compatible con sistemas de terceros, tanto hardware como software: ya sean sintetizadores (software o hardware), fuentes de sonido y datos MIDI, DAWs, etc., y siempre realizando pocas o ninguna modificación a nuestro sistema. Una configuración tentativa de la parte PC podría ser GNU/Linux + Pure Data + Sintetizador software Timidity++, pero el programa actual puede funcionar perfectamente por ejemplo en MacOS/Windows + Pure Data + Logic/Ableton/Cubase...
Por último, debido a que todas las herramientas empleadas: Pure Data, Arduino, etc. son de licencias abiertas, el sistema puede funcionar completamente sobre software libre, lo cual reduce el coste de la plataforma al coste propio del hardware.
Tras tres meses de trabajo, hemos completado el desarrollo de una plataforma que conjuga tanto hardware como software. Ha requerido, aparte de todas las tareas de programación, la creación de protocolos de comunicación y patrones de comportamiento para asegurar que todas las partes del sistema funcionaran de forma correcta y coherente.
Futuro
Debido a que el proyecto es una elección propia debido a nuestro interés en la materia, hemos identificado algunos aspectos que tendrían interés para una realización más completa:
Apertura de código (opensource) Una de las ideas principales en el desarrollo era el uso de herramientas que permitan que el sistema sea abierto, y por ello, el paso natural tras la finalización del proyecto, es la liberación tanto de código software, como esquemáticos hardware. Aún queda por determinar bajo que licencia será, pero algunas candidatas son GPL o Creative Commons.
Plataforma embebida Tras una de las presentaciones de progreso, recibimos la sugerencia de convertir el sistema en una plataforma embebida, que no dependiera de un PC. Esta estructura fue considerada al principio, pero la desestimamos dada la alta complejidad del desarrollo de la parte de análisis y sonido, realizada aquí en PureData, sobre otra plataforma como puede ser un microcontrolador. Sin embargo, tenemos una idea tentativa a la hora de realizar un sistema embebido similar.
Recientemente ha salido a la luz una plataforma llamada Raspberry Pi, que integra un ordenador completo basado en ARM en una placa del tamaño de una tarjeta de crédito, y es de bajo coste (en torno a 35$). Una plataforma de ese estilo permitiría por ejemplo disponer de builds de Pure Data para plataformas ARM y agrupar el sistema completo en un único dispositivo, con la ventaja del menor coste y de un consumo energético y computacional mucho menor en comparación con el del proyecto realizado. La adaptación del sistema sería simple, ya que emplearía la misma estructura, y además, dado que esta plataforma dispone de pines de entrada/salida que permiten el acceso a una UART del propio procesador, se podría eliminar el túnel USB en las comunicaciones disminuyendo de forma drástica la latencia del sistema, factor crítico en un sistema orientado a música y sonido.