Crea o teu propio controlador MIDI con Arduino

MIDI

Se es un melómano ou directamente un afeccionado ou músico profesional, seguramente na túa casa acumulaches unha gran colección de instrumentos musicais. Para que todos estes se mesturen perfectamente, o mellor é obter un Controlador MIDI. Por desgraza, este tipo de obxectos adoitan ser bastante caros de xeito que unha persoa sen demasiados recursos ten difícil acceso a todo o que pode ofrecer.

Para comprender moito mellor o que é un controlador MIDI, dille que a palabra MIDI provén Interface dixital de instrumentos musicais, é dicir, unha especie de controlador que fai que os dispositivos musicais electrónicos sexan capaces de comunicarse entre si. Se tes un teclado electrónico na casa, por exemplo, é máis que probable que teña unha interface MIDI. Antes de seguir avanzando, a pesar de que hai certos detalles técnicos que poden levar a crer o contrario, debes ter moi claro que MIDI non é audio.

Crea o teu propio controlador MIDI con este sinxelo tutorial

Unha vez que teñamos claro isto, seguramente será moito máis doado para vostede comprender que o MIDI é só un simple conxunto de instrucións capaz de soportar ata 16 canles independentes, o que significa que pode haber ata 16 dispositivos diferentes comunicándose de forma independente entre si. Estes dispositivos deben conectarse a través dun cable DIN de 5 pines, que é basicamente un cable con cinco pines dentro dun conector. Como detalle, é bastante común usar un USB en lugar dun DIN de 5 pines, no caso de usar un USB debemos crear unha interface USB-MIDI.

Sen máis, déixovos o enlace onde podedes atopar o titorial paso a paso con moita imaxes descritivas onde podemos realizar todas as accións necesarias para crear o noso propio controlador MIDI.

Artigo relacionado:
Como cambiar o nome de usuario e o contrasinal Pi no noso Raspberry Pi

Como facer o teu propio controlador MIDI con Arduino

conector midi

Hai moita xente que precisa, por diferentes motivos tanto persoais como profesionais, usar un controlador MIDI totalmente personalizado Porque quizais e como exemplo, nalgún momento da túa vida como artista, mercar un controlador MIDI barato pode non cumprir as túas expectativas ou necesidades mentres, cando chegue o momento, optar por unha versión profesional pode ser excesivo nos dous recursos económicos. necesidade, así como a gran cantidade de funcións que poden ofrecer.

Debido a isto, hoxe quero amosarche todo o que necesitas para que poidas crear o teu propio controlador MIDI indicando tanto todo o que necesitas para a súa construción como ofrecerche o software que necesitarás instalar. Como detalle, para este proxecto é esencial o uso dunha placa Arduino, un controlador suficientemente potente para levar a cabo esta tarefa.

Artigo relacionado:
Como facer un robot: 3 opcións diferentes

Que é un controlador MIDI?

midi

Basicamente, un controlador MIDI é responsable, a grandes trazos, de conectar diferentes dispositivos musicais entre si. Moitos son os instrumentos que incorporan unha interface MIDI, aínda que isto debe ser moi claro xa que hai moitos usuarios que a miúdo están confundidos, o MIDI non é un ficheiro de audio, senón un conxunto de instrucións moi sinxelo que un instrumento pode recibir para facer diferentes controles ou axustes de son.

Dentro do MIDI hai dous tipos diferentesPor un lado temos o chamado Control de cambios onde ten o número do controlador e un valor entre 0 e 127. Grazas a isto, pódense emitir mensaxes onde se poden cambiar diferentes parámetros como o volume ou o ton. Os diferentes instrumentos que aceptan MIDI deberían traer consigo un manual onde se expliquen que canles e mensaxes se configuran por defecto e como cambialos.

En segundo lugar temos o Cambio de programa, unha serie de mensaxes que á súa vez son moito máis sinxelas que as que compoñen o control de cambios. Este tipo de mensaxes utilízanse para cambiar o predefinido ou o parche dun dispositivo. Do mesmo xeito que no Control de cambios, xunto co seu instrumento, o fabricante debe incluír un manual que indique os predefinidos que se cambian cunha mensaxe concreta.

Pezas necesarias para construír o seu propio controlador MIDI caseiro

Esquema do conector Midi

Para poder construír o teu propio controlador MIDI necesitarás unha serie de pezas ademais, como xa mencionamos, dunha placa Arduino. Antes de continuar, só che digo que quizais, no futuro, porque queres ampliar o proxecto, necesitas máis cousas, aínda que neste momento con algunhas pezas terás moito.

Necesitaremos un cable DIN femia de 5 polos, 2 resistencias de 220 ohmios, 2 interruptores momentáneos, 2 resistencias de 10k ohmios, cables de conexión, unha placa de circuíto, cable MIDI e un dispositivo MIDI ou interface USB. Con só estas pezas podes comezar, seguindo os meus pasos, a facer o teu propio controlador MIDI.

Primeiros pasos

Esquema midi Arduino

Antes de comezar déixovos unha imaxe na que podedes ver os pinos do voso cable MIDI, deste xeito podemos identificar correctamente os pinos e sobre todo onde hai que conectar cada un. En liñas xerais, todo o que tes que facer neste momento é conectar o pin 5 do cable a unha resistencia de 220 ohmios e de aí ao Arduino Transmit 1, o pin 4 a unha resistencia de 220 ohmios e de aí ao zócalo de 5V de Arduino mentres o pin 2 debe estar conectado á conexión de terra do controlador.

Unha vez feito este paso, non tes un diagrama detallado na foto que se atopa xusto debaixo destas liñas, é hora de conectar os botóns. A idea nesta sección é logralo, usando o pin digitalRead (capaz de detectar cando cambia a tensión que o alcanza) para poder usar un transistor para logralo, premendo un botón. Para iso só temos que empregar un botón para que, co lado esquerdo del, o conectemos a 5V, o lado dereito a unha resistencia de 220 ohmios e de aí a terra mentres, á súa vez, tamén conectamos o lado dereito ao pin 6 O segundo botón instalaríase do mesmo xeito, aínda que, como podes ver no diagrama, no canto do pin 6 conectámolo a 7.

Software para usar para controlador midi doméstico

Unha vez que rematamos con todo o hardware, é hora de conectar o noso instrumento e probalo. Antes diso necesitamos ter un Interfaz USB-MIDI e un cable MIDI para conectar a placa, que está a enviar datos, co noso ordenador. Para conseguilo, optamos pola biblioteca MIDI v4.2 creada polos rapaces de Forty Seven Effects que debemos ter instalada no noso Arduino e incluída no proxecto.

No caso do ordenador, necesitaremos un programa que sexa capaz de supervisar todos os datos MIDI que lle chegan desde Arduino. Para iso temos diferentes posibilidades como MIDI Monitor (OS X), MIDI-OX (Windows) ou Kmidimon (Linux)

Para facer unha pequena proba só temos que conectar o Arduino ao noso ordenador e executar o seguinte código:

#include
#include
#include
#include
#include

MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // crear objeto de salida MIDI llamado midiOut

void setup() {
Serial.begin(31250); // configuracion de serial para MIDI
}

void loop() {
midiOut.sendControlChange(56,127,1); // envío de señal MIDI CC -- 56 = nota, 127 = velocidad, 1 = canal
delay(1000); // retraso
midiOut.sendProgramChange(12,1); // envío de una señal MIDI PC -- 12 = valor, 1 = canal
delay(1000); // retraso de 1 segundo
}

Se todo saíu ben, podes ir á proba do botón, no caso de que esta proba non funcionase para ti, debes asegurarte de que todas as conexións sexan correctas, o circuíto é exactamente igual ao diagrama anterior, o circuíto está conectado a unha interface USB-MIDI cun cable MIDI, os cables do porto MIDI están correctamente conectados, o cable MIDI está conectado á entrada da interface USB-MIDI, a placa Arduino está correctamente conectada á rede eléctrica e ten a potencia suficiente ...

Comprobando que os botóns funcionan correctamente

Antes de seguir alimentando o noso programa con novas funcionalidades e códigos nos que podemos perdernos, paga a pena deterse un momento e proba que os botóns funcionan correctamente. Para eles temos que cargar o seguinte código:

const int boton1 = 6; // asignacion del boton a una variable
const int boton2 = 7; // asignacion del boton a una variable

void setup() {
Serial.begin(9600); // configuracion del serial
pinMode(boton1,INPUT); // configuracion del boton1 como entrada
pinMode(boton2,INPUT); // configuracion del boton2 como entrada
}

void loop() {

if(digitalRead(boton1) == HIGH) { // prueba de estado del boton1
delay(10); // retraso
if(digitalRead(boton1) == HIGH) { // prueba de estado de nuevo
Serial.println("Boton 1 funciona correctamente!"); // log
delay(250);
}
}

if(digitalRead(boton2) == HIGH) { // prueba de boton 2
delay(10); // retraso
if(digitalRead(boton2) == HIGH) { // prueba de estado de nuevo
Serial.println("Boton 2 funciona correctamente!"); // log
delay(250);
}
}

}

Este código só ten que compilarse e executarse para que, co cable USB conectado, o programa nos diga se se premeu algún dos botóns.

Creamos o noso controlador MIDI caseiro

Unha vez executadas estas probas, é hora de montar o noso propio controlador MIDI para iso, só terá que compilar o seguinte código:

#include
#include
#include
#include
#include

const int boton1 = 6; // asignamos boton a la variable
const int boton2 = 7; // asignamos boton a la variable

MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // create a MIDI object called midiOut

void setup() {
pinMode(boton1,INPUT); // configuracion del boton1 como una entrada
pinMode(boton2,INPUT); // configuracion del boton2 como una entrada
Serial.begin(31250); // configuracion MIDI de salida
}

void loop() {
if(digitalRead(buttonOne) == HIGH) { // comprobacion de estado
delay(10); // retraso
if(digitalRead(buttonOne) == HIGH) { // comprobacion de estado de nuevo
midiOut.sendControlChange(56,127,1); // envío un MIDI CC -- 56 = nota, 127 = velocidad, 1 = canal
delay(250);
}
}

if(digitalRead(buttonTwo) == HIGH) { // comprobacion de estado
delay(10); // retraso
if(digitalRead(buttonTwo) == HIGH) { // nueva comprobacion de estado
midiOut.sendControlChange(42,127,1); // envío un MIDI CC -- 42 = nota, 127 = velocidad, 1 = canal
delay(250);
}
}
}

Como detalle, dígolle que esta vez non pode usar o comando Serial.println () cunha saída MIDI, se quere amosar algún tipo de mensaxe no ordenador, simplemente cambie:

midiOut.sendControlChange(42,127,1);

por:

midiOut.sendControlChange(value, channel);

onde o valor e a canle deben ter os valores desexados que desexa amosar.

Exemplo de operación:


O contido do artigo adhírese aos nosos principios de ética editorial. Para informar dun erro faga clic en aquí.

4 comentarios, deixa os teus

Deixa o teu comentario

Enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados con *

*

*

  1. Responsable dos datos: Miguel Ángel Gatón
  2. Finalidade dos datos: controlar SPAM, xestión de comentarios.
  3. Lexitimación: o seu consentimento
  4. Comunicación dos datos: os datos non serán comunicados a terceiros salvo obrigación legal.
  5. Almacenamento de datos: base de datos aloxada por Occentus Networks (UE)
  6. Dereitos: en calquera momento pode limitar, recuperar e eliminar a súa información.

  1.   Alfred dixo

    Arduino ofrécelle moitas posibilidades para emprender proxectos pola súa conta https://www.juguetronica.com/arduino . Unha das mellores cousas é que podes comezar sen ser un experto e seguir aprendendo, motivándote así a ser autodidacta.

  2.   Danel Roman dixo

    Saúdos.

    Estou tentando levar a cabo este fantástico tutorial ... pero o #include non está completo ...

    ¿Poderías dicirme cales son necesarias?

    Moitas grazas.

  3.   Uell dixo

    Olá
    Gustaríame facer un módulo de batería electrónica substituíndo os botóns por entradas jack ás que chegará un sinal piezoeléctrico.
    ¿Sería posible facelo?

  4.   Eduardo Valenzuela dixo

    Por favor, se puideses incluír este código, estou interesado neste proxecto.