nzfs

pedalera midi

1 Introducción

Para este trabajo realice una pedalera MIDI basada en Arduino que me permita controlar el software que utilizo para las performances en vivo (Pure Data, Ableton Live y max/msp). Las principales funcionalidades buscadas era poder controlar el encendido y apagado de distintos procesos, controlar el flujo de la señal y la reproducción de archivos de audio. Ademas, la posibilidad de tener distintas escenas con presets de modos y mensajes MIDI.




2 materiales y metodos

Para realizar la pedalera se utilizo un Arduino Uno, 6 pulsadores de pie momentáneos montados en y un gabinete metálico de 183x100x44mm.


El programa del Arduino se encarga de leer el estado de los pulsadores, y de acuerdo a dos modos de uso posible enviá los mensajes MIDI correspondientes. Los dos modos que pueden utilizarse son TOGGLE, donde la primera pulsación del botón enviá un mensaje de CC con un valor de 127, y al volver a presionarlo enviá el mismo mensaje con un valor de 0. En el modo MOMENTARY envía el mensaje con un valor de 127 mientras se mantenga presionado el pulsador. En el caso de enviar una nota envía un mensaje de note on al presionarlo y un note off al soltarlo (como la tecla de un teclado o un pad). A su vez permite seleccionar por que canal MIDI se envían los mensajes, y seleccionar entre 5 escenas que pueden enviar diferentes mensajes. En los ejemplos de aplicación se explica esta funcionalidad.


Para poder enviar MIDI por USB y que reconozca la pedalera como un dispositivo MIDI class compilant se le cambio el firmware al Arduino. Las opciones tenidas en cuenta eran HIDUINO (basado en el framework LUFA) o mocoLUFA. Finalmente me decidí por la aplicación web pimp my mocolufa (https://moco-lufa-web-client.herokuapp.com) que genera online el archivo .hex y nos permite ponerle el nombre que queramos, sin tener que preocuparnos por compilar y modificar manualmente el firmware. Para flashear el Arduino con el nuevo firmware utilice la aplicación Flip de Atmel.


Modo TOGGLE:

Al iniciar la pedalera nos encontramos en el modo TOGGLE (así lo señala el led indicador de color verde). Si nos encontramos en otro modo accedemos a TOGGLE manteniendo pulsado el botón 2 durante 1 segundo. En este modo leemos los pulsadores con un ciclo for y evaluamos el estado de los mismo. En el caso de estar en HIGH enviamos un mensaje de CC con un valor de 127 por el canal actual, encendemos el led correspondiente al botón pulsado y y guardamos el estado actual del pulsador en una variable. Si el estado del pulsador es HIGH y volvemos a presionarlo, enviamos el mismo mensaje con un valor de 0 y apagamos el led indicador.


codigo toggle

Modo MOMENTARY:

Para entrar a este modo mantenemos presionado el pulsador 1 durante 1 segundo. El led indicador de modo se pone de color azul. En este modo también leemos el estado de los pulsadores con un cicle for y evaluamos el estado en que se encuentran. Si esta en HIGH enviamos un mensaje de CC con un valor de 127 y encendemos el led indicador correspondiente. Si el botón esta en LOW apagamos el led indicador.

codigo momentary


3 lista de materiales




4 ejemplos de aplicacion




5 refenrecias

www.arduino.org
www.fritzing.org
www.puredata.info
www.ableton.com
www.cycling74.com
https://moco-lufa-web-client.herokuapp.com
https://github.com/ddiakopoulos/hiduino
https://www.microchip.com/developmenttools/ProductDetails/flip