sábado, 26 de julio de 2014

4. Pruebas modo vinilo (vinyl mode)

En esta cuarta entrada se muestran un par de vídeos de las pruebas para los jogs del controlador y, concretamente con el funcionamiento en modo vinilo que se podrá llevar a cabo con los mismos.

Estos controles se han implementado con encoders digitales de 24 pasos y detenciones a cada paso. Además poseen un pulsador digital al presionar sobre su eje, como puede observarse en los vídeos. Otro de los controles que se implenta con estos encoders es el control browse para la exploración de música en el disco duro del ordenador.

En el primer vídeo se muestra el encoder conectado directamente a la placa Arduino. La programación es directamente sobre las entradas de Arduino que se han usado, sin tener en cuenta los módulos de multiplexado que sí se han utilizado ya en el segundo vídeo y que formarán parte del montaje final del prototipo. Además pueden apreciarse algunos pulsadores para lanzar la canción, una pareja de potenciómetros para los niveles de volumen y algunos leds que pertenecen al CUE y PLAY.


En el segundo vídeo puede verse el encoder conectado ya a uno de los módulos de multiplexado (que hemos llamado matriz de pulsadores), con lo que la programación de Arduino irá acorde a esta conexión. Los leds que aparecen también están conectados a su módulo de salidas que puede verse aún sin terminar cerca del ordenador portátil.



En la siguiente entrada del blog hablaremos de los módulos de entradas y salidas, que se han utilizado para que el controlador pueda tener un número de controles elevado.

Gracias por tu lectura. Un saludo.

jueves, 19 de septiembre de 2013

3. Primeros pasos con ARDUINO

El siguiente paso que hemos dado en el proyecto ha sido el de familiarizarnos con la placa principal del mismo, el ARDUINO UNO. Una descripción resumida de esta placa sacada textualmente de su página web sería la siguiente:
"Arduino es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar. Se creó para artistas, diseñadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos."
Para más información: http://www.arduino.cc/es/

Se trata de programar el chip de la placa Arduino para que reconozca los cambios realizados por el usuario en los diferentes mandos del controlador, y así mandar la señal MIDI apropiada hacia el PC y que sea reconocida por el programa de reproducción respondiendo éste a las órdenes que demos desde el controlador.

A continuación se presenta un vídeo de una de las primeras pruebas realizadas. En realidad la primera prueba fué comunicarnos desde el Arduino a Virtual DJ mediante órdenes dentro del código de programa, es decir sin botones. En el vídeo se muestra ya el siguiente paso que es actuando sobre dos pulsadores con la consiguiente complicación de código que ello conlleva.


Es estos primeros ensayos estamos utilizando un programa intermedio (S2MIDI) que nos convierte los "datos serie" enviados desde el Arduino a mensajes MIDI a través de un puerto MIDI virtual (MIDIYOKE). Así el Virtual DJ nos reconoce la placa Arduino como un controlador MIDI. La intención final es modificar el firmware que Arduino trae por defecto para su programación y que éste mande directamente los mensajes MIDI a Virtual DJ, para que el usuario no tenga que instalar ningún software adicional en el PC. Solamente habrá que instalar los mappers correspondientes de Virtual DJ para que todas las funciones sean reconocidas.

Por aquí otro vídeo de otra prueba realizada con más controles, incluyendo ya algunos potenciómetros incluso un encoder que nos servirá para la navegación en la biblioteca de música del usuario, así como algunos leds. Por supuesto con un código de programa en Arduino mucho más elaborado, aunque lejos en complejidad del código que implementaremos al final del proyecto y que incluirá todos los controles.


Algunas fotos del montaje del último vídeo (Pinchar para agrandar):




El mando giratorio gris es el encoder (es como un botón de volumen sin fin y con detenciones a cada paso). Este tipo de encoders serán los que utilizaremos para los "jog wheel" con los que poder hacer "scratchs" (modo  vinylo), controlar la posición de las canciones en pausa y algunas funciones más. Todo ello se presentará en la siguiente entrada al blog.

Nota: El proyecto está muuucho más avanzado a fecha de hoy, pero por falta de tiempo no me ha dado tiempo a subir todo el progreso actual. Poco a poco iré completando el blog.

De momento eso es todo. Un saludo.

viernes, 13 de septiembre de 2013

2. Primeros pasos con MIDI

Los primeros pasos del proyecto han consistido en intentar comunicarnos con el programa de reproducción en cuestión (Virtual DJ) a través de mensajes MIDI. La forma más fácil para comprender el funcionamiento de estos mensajes y de cómo Virtual DJ los reconoce es mediante un mando o joystick de PC. A través de un programa externo, convertimos dicho mando en un controlador MIDI. De aquí, las señales pasan a un puerto MIDI virtual creado en el PC con otro programita llamado MIDIYOKE. Y así Virtual DJ nos reconoce los mensajes que mandemos.

Además en esta parte del proyecto se puede aprender mucho de como hacer el archivo de "mappeo" de Virtual DJ. En este archivo se especifica la dirección MIDI y qué acción lleva a cabo, cada botón o potenciómetro, en dicho programa de reproducción. Así a la hora de empezar a montar nuestro controlador, ya tendremos esta parte de mappeo asimilada y podremos ir directamente a la programación de la placa Arduino.

A continuación una captura de los archivos de "Device" y "Mapper" de Virtual DJ para el controlador en cuestión. Como ya se ha dicho, en este caso un mando de juegos de PC.



Además unos vídeos de algunas de las pruebas realizadas para comprobar su buen funcionamiento.



De momento eso es todo. En la próxima entrada al blog, trataremos ya sobre el montaje con la placa Arduino.

Saludos.

miércoles, 11 de septiembre de 2013

1. Visión general del Proyecto

En este blog trataré de recopilar todo el proceso de fabricación de mi controlador MIDI. Tanto fotos de montaje de circuitos, placas fabricadas, detalles de componentes y demás así como vídeos de las pruebas que he ido realizando para el desarrollo del prototipo.

Lo que se pretende con la fabricación de dicho controlador es poder tener un manejo más fluido e intuitivo de programas de reproducción multipista, tales como "Virtual DJ" (en el que, en principio, hemos basado el diseño), como "Traktor DJ" o similares. Para el uso con este segundo o similares, sólo habrá que hacer un nuevo  "mappeo" de todos los controles para que el programa "entienda" que botón o potenciómetro estamos tocando (sería un archivo externo al diseño de este controlador). Esa parte se implementará en versiones posteriores a esta primera.

El controlador constará de diferentes pulsadores (botones) y potenciómetros (giratorios y deslizantes) con los que el usuario podrá interactuar para el control de la reproducción. A su vez contará con numerosos led's que ayudarán a saber el estado de cada control y harán más interactiva la experiencia con el controlador.

Todo el conjunto de dichos sensores en el panel de mando irán conectados a una placa central a través de unos módulos de multiplexado. Módulos que se encargan de redireccionar y agrupar cada entrada y salida para adaptarla a la placa central del prototipo. Dicha placa será el "Arduino UNO" (placa opensource para el desarrollo de proyectos de diferente índole). En la imagen siguiente se puede apreciar la misma así como su tamaño con respecto al de una cajetilla de tabaco.


El "Arduino UNO" posee diferentes entradas y salidas digitales y analógicas con las que se comunicará con los mandos del controlador a través de los módulos de multiplexado como hemos mencionado más arriba. Además posee un puerto USB que usaremos para la comunicación con el PC.

En la fase de desarrollo del proyecto se incluirá la creación del código de programa que utilizará esta placa para el control total del controlador. Este programa se encargará de verificar en cada instante el estado de cada uno de los sensores del panel de mando, enviando señales MIDI al PC cuando se produzcan cambios de estado en los mismos o también mandando señales a los led's que correspondan en cada caso. La carga de este código en la placa será a través del puerto USB. La comunicación "SERIE" en esta primera fase de desarrollo también será a través de dicho puerto y con la creación de un puerto MIDI virtual, nos comunicaremos con el programa de reproducción en cuestión (en adelante Virtual DJ).

ESTRUCTURA GENERAL DEL CONTROLADOR


Queda aquí resumida la estructura y visión general del proyecto. Se irá ampliando en sucesivas entradas al blog, en las que iré subiendo fotos y vídeos del proceso de desarrollo.

Gracias por su lectura.Saludos.