Single post

Controlador MIDI casero con Arduino

Hoy vamos a construir un controlador MIDI con el que podremos tocar la batería, el piano, o componer música electrónica. Para ello programaremos un Arduino para que reciba las señales que mandan unos pulsadores y la transforme en impulsos MIDI (información musical como una nota, el compás o el tono), esta información será enviada al ordenador y un software la transformará en sonido. Según el software será un instrumento u otro.

La idea del proyecto no es mía, por Internet ya rulan varios diseños (yo me he basado en éste y lo he simplificado), aunque sin duda el mio es el más Low cost y fácil de realizar. Os pongo un vídeo para que lo veáis en acción:

Necesitaremos un arduino (yo he usado el nano v3), 7 pulsadores, 7 resistencias de 10k, una interface midi, y un cable midi. La mayoría de los proyectos que existen por internet no envían señales midi, si no que usan el puerto serie y luego un programa en el ordenador se encarga de convertir esa señal en midi, y otro programa crea un puerto midi virtual que es el que envía la señal al software musical (batería, piano, etc…). A mi entender eso es más complicado y más engorroso, puesto que hace falta más configuraciones y programas.

Este montaje envía directamente señales midi a una interfaz, y el software musical lo interpreta del tirón. Ya explicado pasamos a la acción:

Tenia por casa esta caja proveniente de un disco duro multimedia que murió:

arduino midi controller 1

arduino midi controller 2

Por otro lado aquí tenemos los pulsadores, nada del otro mundo. Los podéis comprar en cualquier tienda de electrónica o por internet. A mi me costaron menos de 5€ todos.

arduino midi controller 3

Agujeré vilmente la caja y fui colocando los pulsadores

arduino midi controller 4

Cómo veis hay un pulsador diferente, sirve para cambiar de octava, es decir sube la nota una octava haciéndola más aguda.

Luego se cablean los pulsadores, en un pin les suministramos los 5 voltios que provienen del arduino, y en el otro una resistencia de 10K que sirve para evitar rebotes, si no la ponemos el arduino puede creer que hemos apretado el botón varias veces cuando en realidad sólo hemos apretado una vez.

arduino midi controller 6

Cada resistencia la conectaremos a masa y a cada pin del Arduino. El conector midi lo soldaremos al cable que sale del pin TX del arduino, a masa y a los 5V con una resistencia de  220 ohms. En la imagen se ve que yo lo he soldado directamente a los pins de un cable macho-macho, pero lo suyo es hacerlo en un conector hembra.

arduino midi controller 8

Os pongo un esquema hecho en Fritzing para que lo veáis más fácil

arduino midi controller

Y ahora nos toca programar el arduino. Este código es una versión simplificada y reducida del controlador en el que me he basado. Abrimos el IDE de Arduino, copiamos el siguiente código y lo compilamos.
Código

Una vez tengamos todas las conexiones hechas y el arduino esté programado, tendremos que conectar nuestro controlador midi a la tarjeta de sonido o interfaz midi, que es la que los recibirá. Yo ya tenía una interfaz, pero si no tenemos, no problem. Aquí podemos comprar un adaptador de midi a usb por 6’18€. Después de conectarla abrimos nuestro software musical (DAW) y podemos dar rienda suelta a nuestra creatividad.

El potencial de este invento es muy grande y variado, pese a ser un controlador midi de pocas notas (6 notas que se convierten en 12 al cambiar de octava) ya nos será posible hacer nuestros ritmos y dar rienda a nuestra creatividad, y todo con muy poca inversión:

Arduino nano6'87
7 Pulsadores4'9
7 Resistencias 10K y 1 de 220ohm0'6
TOTAL12'37
lucas
junio 14th, 2016 at 5:36 pm

no se puede hacer para q se conecte via usb a la pc?

gustavo lozano
diciembre 14th, 2016 at 10:42 pm

buenísimo proyecto , pero no me queda claro donde va la alimentación sld

Jerry
enero 20th, 2017 at 4:16 pm

Hi, Wil.
Lo tomo en cuenta; acabo de empezar en Arduino, porque me ha dao el puntazo el cajon-e, que todavía no lo han comercializado (Buscalo en Youtube, cuando conecta al ampli).
Lo que yo pretendo es no usar el ordenata para esto, sino la Arduino Musica Shield de Sparkfun; sería interconectar tx/rx correspondiente y salida audio de la MIS con un ampli.
La hostia sería una LCD táctil, para poder seleccionar el instrumento midi…
Una duda: Cuando hablas de octavas, son notas, no?
Abrazos

REPLY TO "Jerry" / CANCEL REPLY

theme by teslathemes