Cómo hacer un controlador MIDI con un Arduino

  • Harry James
  • 0
  • 3975
  • 783
Anuncio

Como músico que ha acumulado una colección de instrumentos musicales y cajas de ruido, el humilde Arduino es la herramienta perfecta para crear un controlador MIDI personalizado. Mientras que Raspberry Pi puede haber tomado la corona de Internet de las cosas (IoT) Internet de las cosas: 10 productos útiles que debes probar en 2016 Internet de las cosas: 10 productos útiles que debes probar en 2016 El Internet de las cosas se está intensificando en 2016, pero ¿qué significa eso exactamente? ¿Cómo se beneficia personalmente del Internet de las cosas? Aquí hay algunos productos útiles para ilustrar. proyectos, un Arduino Uno simple (¿cuáles son los diferentes tipos de Arduino? Guía de compra de Arduino: ¿Qué placa debería obtener? Guía de compra de Arduino: ¿Qué placa debería obtener? Hay tantos tipos diferentes de placas de Arduino por ahí, ser perdonado por estar confundido. ¿Cuál debería comprar para su proyecto? ¡Permítanos ayudarlo, con esta guía de compra de Arduino!) tiene poder más que suficiente para este proyecto.

¿Primera vez que usa un Arduino? No se preocupe, tenemos una guía completa para principiantes de Arduino Introducción a Arduino: una guía para principiantes Introducción a Arduino: una guía para principiantes Arduino es una plataforma de creación de prototipos de electrónica de código abierto basada en hardware y software flexible y fácil de usar. Está destinado a artistas, diseñadores, aficionados y cualquier persona interesada en crear objetos o entornos interactivos. para leer antes de abordar este proyecto.

¿Qué es el MIDI??

MIDI significa interfaz digital de instrumentos musicales. Esboza una forma estándar para que los dispositivos musicales se comuniquen entre sí. Si posee un teclado electrónico, probablemente tenga una interfaz MIDI. Si bien hay algunos detalles técnicos involucrados en la implementación de MIDI, es importante recordar que MIDI no es audio. Los datos MIDI son un conjunto simple de instrucciones (una instrucción se llama “mensaje”) que otro dispositivo puede implementar para hacer diferentes sonidos o controlar parámetros.

MIDI admite 16 canales. Esto significa que cada cable puede soportar 16 dispositivos diferentes que se comunican independientemente entre sí. Los dispositivos se conectan mediante un cable DIN de 5 pines. DIN significa “Instituto Alemán de Normalización”, y es simplemente un cable con cinco pines dentro del conector. El USB se usa a menudo en lugar de DIN de 5 pines, o se puede usar una interfaz USB-MIDI.

Cambio de control y cambio de programa

Hay dos tipos principales de mensajes MIDI: Control Change y Program Change.

Los mensajes de cambio de control (CC) contienen un número de controlador y un valor entre 0 y 127. Los mensajes CC a menudo se usan para cambiar configuraciones como el volumen o el tono. Los dispositivos que aceptan MIDI deben venir con un manual que explique qué canales y mensajes están configurados de manera predeterminada y cómo cambiarlos (conocido como mapeo MIDI).

Los mensajes de cambio de programa (PC) son más simples que los mensajes CC. Los mensajes de PC consisten en un solo número y se usan para cambiar el preajuste o parche en un dispositivo. Los mensajes de PC a veces se conocen como “Cambio de parche”. De manera similar a los mensajes CC, los fabricantes deben proporcionar un documento que describa qué valores predeterminados se cambian por un mensaje particular.

Que necesitarás

  • Arduino
  • Conector hembra DIN de 5 pines
  • 2 x resistencias de 220 ohmios
  • 2 resistencias de 10k ohmios
  • 2 x interruptores momentáneos
  • Cables de conexión
  • Tablero de circuitos
  • Cable MIDI
  • Dispositivo MIDI o interfaz USB

Plan de construcción

Este proyecto será bastante simple. Por supuesto, puede agregar más botones o hardware para satisfacer sus necesidades. Casi cualquier Arduino será adecuado; solo se necesitan tres pines para este ejemplo. Este proyecto consta de dos botones para controlar el programa, un puerto MIDI para enviar los datos y un dispositivo para recibir los mensajes. Este circuito se ha construido sobre una placa electrónica Electrónica para principiantes: 10 habilidades que necesita saber Electrónica para principiantes: 10 habilidades que necesita saber Muchos de nosotros nunca hemos tocado un soldador, pero hacer cosas puede ser increíblemente gratificante. Aquí hay diez de las habilidades básicas de electrónica de bricolaje para ayudarlo a comenzar. aquí, sin embargo, es posible transferirlo a una caja de proyecto y conectores soldados para una solución robusta.

Asamblea de circuito

Conexión MIDI

Conecte su toma MIDI de la siguiente manera:

  • Pin MIDI 5 a Arduino Transmit (TX) 1 a través de una resistencia de 220 ohmios
  • Pin MIDI 4 para Arduino + 5V a través de una resistencia de 220 ohmios
  • Pin MIDI 2 a tierra Arduino

Conexión de botón

Los botones funcionan cambiando la resistencia del Arduino “ve”. El pin Arduino pasa por el interruptor directamente al suelo (BAJO) a través de una resistencia de 10k ohmios (a “derribar” resistencia, asegurando que el valor se mantenga bajo). Cuando se presiona el botón, el valor visto por el circuito cambia a + 5v sin una resistencia (ALTO) El Arduino puede detectar este cambio usando el digitalRead (pin) mando. Conecte los botones a los pines 6 y 7 en la entrada / salida digital Arduino (E / S). Conecta ambos botones:

  • Lado izquierdo del botón a + 5V
  • Lado derecho del botón a Arduino Ground a través de una resistencia de 10k ohmios
  • Lado derecho del botón al pin Arduino (6 o 7)

Prueba MIDI

Ahora que todo el hardware está terminado, es hora de probarlo. Necesitará una interfaz USB-MIDI (muchas interfaces de audio pueden hacer esto) y un cable MIDI. El puerto MIDI conectado en la placa de prueba está enviando datos, por lo que es la salida. Su computadora está recibiendo los datos, por lo tanto, es la entrada. Este proyecto utiliza la excelente Biblioteca MIDI Arduino v4.2 de Forty Seven Effects. Una vez que haya instalado la Biblioteca, puede incluirla en su código yendo a Boceto> Incluir biblioteca> MIDI.

También necesitará un programa para monitorear los datos MIDI entrantes:

  • Monitor MIDI para OS X
  • MIDI-OX para Windows
  • KMidimon para Linux

Conecte el Arduino Comenzando con su Arduino Starter Kit - Instalando controladores y configurando la placa y el puerto Comenzando con su Arduino Starter Kit - Instalando controladores y configurando el tablero y el puerto Entonces, se ha comprado un Arduino starter kit, y posiblemente algunos otros componentes geniales al azar, ¿y ahora qué? ¿Cómo comienzas a programar esta cosa de Arduino? ¿Cómo lo configura ... en su computadora y carga el siguiente código de prueba (no olvide seleccionar la placa y el puerto correctos del Herramientas> Tablero y Herramientas> Puerto menús).

#include #include #include #include #include MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // crea un objeto MIDI llamado midiOut void setup () Serial.begin (31250); // configurar serial para MIDI void loop () midiOut.sendControlChange (56,127,1); // envía un CC MIDI - 56 = nota, 127 = velocidad, 1 = retardo de canal (1000); // espera 1 segundo midiOut.sendProgramChange (12,1); // envía una PC MIDI - 12 = valor, 1 = retraso de canal (1000); // espera 1 segundo

Este código enviará un mensaje CC, espere 1 segundo, envíe un mensaje de PC y luego espere 1 segundo indefinidamente. Si todo funciona correctamente, debería ver aparecer un mensaje en su monitor MIDI.

Si no pasa nada, ¡no se asuste! Intenta solucionar problemas:

  • Asegúrese de que todas las conexiones sean correctas
  • Verifique que el puerto MIDI esté conectado correctamente: debe haber 2 pines de repuesto en los bordes exteriores
  • Verifique que el circuito sea correcto
  • Verifique que el circuito esté conectado a una interfaz USB-MIDI con un cable MIDI
  • Verifique que su cable MIDI esté conectado al entrada en su interfaz USB-MIDI
  • Asegúrate de que el Arduino tenga poder
  • Instale el controlador correcto para su interfaz USB-MIDI

Si usted es todavía Si tiene problemas, puede valer la pena revisar su placa de pruebas. Los tableros baratos a veces pueden ser muy inconsistentes y de baja calidad: me sucedió mientras trabajaba en este proyecto.

Prueba de botones

Ahora es el momento de probar que los botones funcionan correctamente. Sube el siguiente código de prueba. MIDI no necesita estar conectado para probar esta parte.

const int buttonOne = 6; // asigna el pin del botón a la variable const int buttonTwo = 7; // asigna el pin del botón a la configuración de vacío variable () Serial.begin (9600); // configurar serial para texto pinMode (buttonOne, INPUT); // botón de configuración como input pinMode (buttonTwo, INPUT); // botón de configuración como entrada void loop () if (digitalRead (buttonOne) == HIGH) // comprueba el retraso del estado del botón (10); // software de-bounce if (digitalRead (buttonOne) == HIGH) // comprueba el estado del botón nuevamente Serial.println ("Button One Works!"); // retraso del resultado del registro (250);  if (digitalRead (buttonTwo) == HIGH) // comprueba el retraso del estado del botón (10); // software de-bounce if (digitalRead (buttonTwo) == HIGH) // comprueba el estado del botón nuevamente Serial.println ("Button Two Works!"); // retraso del resultado del registro (250);  

Ejecute este código (pero mantenga el cable USB conectado) y abra el Monitor de serie (Arriba a la derecha> Monitor en serie) Cuando presionas un botón deberías ver “Button One Works!” o “Button Two Works!” dependiendo del botón que presionaste.

Hay una nota importante que debe sacarse de este ejemplo: el rechazo del software. Este es un simple retraso de 10 milisegundos (ms) entre la comprobación del botón y la comprobación del botón nuevamente. Esto aumenta la precisión de la presión del botón y ayuda a evitar el ruido que activa el Arduino. No tiene que hacer esto, aunque se recomienda.

Crear el controlador

Ahora que todo está conectado y funcionando, es hora de ensamblar el controlador completo.

Este ejemplo enviará un mensaje CC diferente para cada botón que se presione. Estoy usando esto para controlar Ableton Live 9.6 en OS X. El código es similar a los dos ejemplos de prueba anteriores.

#include #include #include #include #include const int buttonOne = 6; // asigna el pin del botón a la variable const int buttonTwo = 7; // asigna el pin del botón a la variable MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // crea un objeto MIDI llamado midiOut void setup () pinMode (buttonOne, INPUT); // botón de configuración como input pinMode (buttonTwo, INPUT); // botón de configuración como entrada Serial.begin (31250); // configurar salida MIDI void loop () if (digitalRead (buttonOne) == HIGH) // comprobar el retraso del estado del botón (10); // software de-bounce if (digitalRead (buttonOne) == HIGH) // comprueba el estado del botón nuevamente midiOut.sendControlChange (56,127,1); // envía un CC MIDI - 56 = nota, 127 = velocidad, 1 = retardo de canal (250);  if (digitalRead (buttonTwo) == HIGH) // comprueba el retraso del estado del botón (10); // software de-bounce if (digitalRead (buttonTwo) == HIGH) // comprueba el estado del botón nuevamente midiOut.sendControlChange (42,127,1); // envía un CC MIDI - 42 = nota, 127 = velocidad, 1 = retardo de canal (250);  

Nota: no podrás usar Serial.println () con salida MIDI.
Si desea enviar un mensaje de PC en lugar de un CC, simplemente reemplace:

midiOut.sendControlChange (42,127,1);

Con:

midiOut.sendProgramChange (valor, canal); 

En acción

A continuación se muestra una demostración como controlador para Ableton Live (el mejor software de DJ para todos los presupuestos. El mejor software de DJ para cada presupuesto. El mejor software de DJ para cada presupuesto. , Windows o Linux, cada nivel de habilidad y presupuesto se atiende si quieres comenzar a pinchar). La parte superior derecha muestra los medidores de audio, y la parte superior central muestra los mensajes midi entrantes (a través del monitor MIDI en OS X).

¿Has hecho un controlador MIDI??

Hay muchos usos prácticos para un controlador MIDI personalizado. Podrías construir una gran unidad controlada por el pie o un elegante controlador de estudio. Y si está interesado en comprar uno, aquí están los mejores controladores USB MIDI Los 9 mejores controladores USB MIDI para músicos Los 9 mejores controladores USB MIDI para músicos ¿Está buscando un controlador USB MIDI? Aquí están los mejores controladores MIDI que puede comprar en este momento, independientemente del presupuesto. tu puedes comprar.

Crédito de imagen: Keith Gentry a través de Shutterstock.com




Nadie ha comentado sobre este artículo todavía.

Sobre tecnología moderna, simple y asequible.
Tu guía en el mundo de la tecnología moderna. Aprenda a usar las tecnologías y los dispositivos que nos rodean todos los días y aprenda a descubrir cosas interesantes en Internet.