Non Music. MIDI Con Un Arduino
by caterinabong in Circuits > Arduino
537 Views, 0 Favorites, 0 Comments
Non Music. MIDI Con Un Arduino
Este proyecto busca poder encontrar y recopilar, toda la información archivos, código, utensilios y demás para que cualquier persona pueda crear su propio MIDI controller, esto no se trata de crear música, se trata de romper el sistema, salirse de lo académico y realizar un proyecto en donde la gente te enseña tu les enseñas algo, revolucionar el sistema y crear cosas por tus propios medios, salir del circulo de consumo y crear envés de comprar.
Supplies
Arduino uno
· Potenciómetros de 10k x4
· Potenciómetros lineales x4
· Pulsadores x10
· Cable
· Soldadura
· Cautín
1. Los Circuitos.
El primer paso es poder
conocer y saber cuales son los componentes que se van a necesitar en la parte del circuito y de como conectar cada uno de estos en el cerebro, que en este caso es la placa Arduino uno, realmente yo utilice una de las genéricas conocidas como CH340. La cual no afecta en absoluto el proceso, aparte de un par de pasos extras y eso si una limitación que veremos al final.
*especificaciones del Arduino
uno aquí: https://arduino.cl/arduino-uno/ *
Botones
Para poder
conectar los elementos que usaremos, se debe tener en cuenta que el Arduino maneja dos tipos de señales, una de esta es la digital la cual usaremos para nuestros pulsadores y la análoga para los potenciómetros.
Los pulsadores tienen 4 pines, de los cuales están divididos por pares, en este caso uno de los pines del primer par debe ir conectado a el GND, ground del Arduino y el otro a uno de los espacios disponibles para las entradas y salidas digitales, que en este caso corresponderían a las digitales (PWM) las cuales van de 2 al 12.
Potenciómetros
Los potenciómetros a diferencia de los pulsadores poseen 3 pines, en los cuales el del medio es el que envía la información al Arduino, y los otros dos reciben la corriente desde este, por lo que el pin del medio va conectado a la salida analógica del Arduino desde el A0 al A5. Los otros dos corresponderán a GND y 5V.
Potenciómetros Lineales
Los potenciómetros lineales
funcionan de la misma manera que los otros, la única diferencia es que estos en algunos casos poseen 6 pines como los que tengo en este caso, por eso es necesario poder ubicar cal es el pin correspondiente a cada uno de estos.
Aquí pueden encontrar como hallar cada pin con un voltímetro aquí
En el caso de los potenciómetros lineales B103 estos poseen 6 pines los cuales están divididos en dos conjuntos, los cuales cada conjunto posee un pin de datos uno de 5v y el otro de GND
Código
Ya teniendo en cuenta como se deben conectar cada uno de estos, es hora de escribir el código.
Realmente utilizar el código que está disponible desde la página web, canal de YouTube de Notes And Voltes ( Youtube Notes and Voltes ), los cuales escribieron un código para el Arduino uno ( Código ) el cual convierte estas señales que recibe el Arduino de cada uno de los elementos conectados y los convierte en una señal la cual puede recibir una entrada MIDI.
En este caso tomaremos las bases de lo que explican y el código que realizaron, pero no lo haremos exactamente igual.
Antes de descargar el código es necesario tener el Arduino IDE, el cual es la aplicación la cual nos permitirá abrir y manipular estos códigos como también subirlos a la placa (software).
Una vez descargado, también es importante descargar la librería MIDI para Arduino (librería MIDI) y se instala la librería siguiendo los siguientes pasos una vez descargada. ( Como instalar librería)
Una vez tenemos el código abierto,
lo primero que vamos a hacer es, proceder a escribir cuantos potenciómetros y cuantos botones usaremos en nuestro proyecto, en este caso particular usare 6 potenciómetros y 10 botones
Consiguiente a esto bajaremos
hasta llegar a la parte de //***DEFINE DIRECTLY CONNECTED POTENTIOMETERS************************
En donde en este caso como se usarán los 6 potenciómetros se le eliminan los “//” del inicio a los potenciómetros, en este caso yo le e asignado a cada potenciómetro un canal individual.
Los potenciómetros tienen unos números entre paréntesis, los cuales representan el primero el pin del Arduino donde esta conectado, como se conecta en los analógicos el numero del pin esta acompañado por la “A”, el siguiente es un canal el cual todavía no está en uso, el tercero es el tipo de señal MIDI el cual emite el potenciómetro, aquí puedes encontrar la lista https://professionalcomposers.com/midi-cc-list/ , yo les puse el mismo numero del canal, y por ultimo el numero del canal.
Y para terminar de definir los potenciómetros se agregan entre los paréntesis los “&PO1,” que se necesiten, se recomienda copiar y pegar de los comentarios del código.
Lo siguiente a definir son los botones,
en el cual se realiza el mismo procedimiento que con los potenciómetros, se le eliminan los “//” del inicio y para terminar de definir los potenciómetros se agregan entre los paréntesis los “&BU1” que se necesiten, se recomienda copiar y pegar de los comentarios del código.
en este caso, teniendo encuentra que los números entre paréntesis el primero se refiere al pin del Arduino donde este esta conectado, el segundo al tipo de señal que este va a enviar en donde, 0=NOTE quiere decir se presiona y envía una señal de una pulsación, 1=CC se mantiene presionado para que se mantenga la señal y 2=Toggle CC una presionada para encender y otra para apagar. El siguiente corresponde al canal, que en este caso se dejara en uno y el siguiente un delay entre la señal y la acción, el cual se recomienda dejar en 5.
El siguiente paso para realizar,
es hacer un cambio en la configuración de Serial ,begin del código, para esto hay que buscar cuando en el código dice:
void setup() {
MIDI.begin(MIDI_CHANNEL_OFF);
}
Y modificarlo para que quede asi:
void setup()
{
// MIDI.begin(MIDI_CHANNEL_OFF);
Serial.begin(57600);
}
La principal razón de esto es que este código fue realizado para que las señales salgan por medio de un puerto MIDI, pero en este caso como lo usaremos por USB, es necesario seleccionar este serial para que sea reconocido por el programa.
El siguiente paso es descargar Hairless
midi, el cual reconocerá las señales USB las cuales son trasmitidas al computador y las traducirá para que puedan ser reconocidas realmente como señales MIDI, Software .
Es importante, que en el programa entren a preferencias y seleccionen el Baud rate en el mismo numero que seleccionamos el Serial, el cual seria 57600.
Una ves configurado el hairless,
es necesario descargar loopMIDI, ( loop) el cual este encargado de recibir estas señales de hairless y crear un controlador MIDI virtual que reconocerán los programas que desees usar.
Extra.
En este caso como tenía un Arduino
genérico, fue necesario usar estos dos programas para que los softwares de música lo reconocieran, si tu tiene un Arduino el cual posee un Atmel, puedes seguir estos pasos de este video, para poder no usar estos dos programas.
Modelado
Para agregar mi granito de arena en este proceso, lo que realize fue hacer un modelado en Fusion 360, para poder gradar todos los componentes y poder quedar con un controlado MIDI fulleado, se realizo una búsqueda y juego con algunas texturas y sensaciones para poder llegar este resultado final, el cual les comparto los archivos . STL.
ps. la caja quedo muy pequeña, próximamente actualizare los archivos.