Faça seu próprio controlador MIDI com o Arduino

TARDE

Se você é um amante da música ou diretamente um músico amador ou profissional, certamente em sua casa você acumulou uma grande coleção de instrumentos musicais. Para fazer todas essas combinações perfeitamente, é melhor obter um Controlador MIDI. Infelizmente, esses tipos de objetos geralmente são muito caros, de modo que uma pessoa sem muitos recursos tem dificuldade de acesso a tudo o que eles podem oferecer.

Para entender melhor o que é um controlador MIDI, diga que a palavra MIDI vem de Interface digital de instrumento musical, ou seja, uma espécie de controlador que faz com que dispositivos musicais eletrônicos possam se comunicar uns com os outros. Se você tem um teclado eletrônico em casa, por exemplo, é mais do que provável que tenha uma interface MIDI. Antes de continuar avançando, apesar de haver certos detalhes técnicos que podem levar a crer o contrário, deve ficar bem claro que MIDI não é áudio.

Crie seu próprio controlador MIDI com este tutorial simples

Assim que ficarmos claros sobre isso, certamente será muito mais fácil para você entender que MIDI é apenas um simples conjunto de instruções capaz de suportar até 16 canais independentes, o que significa que pode haver até 16 dispositivos diferentes se comunicando de forma independente uns com os outros. Esses dispositivos devem ser conectados por meio de um cabo DIN de 5 pinos, que é basicamente um cabo com cinco pinos dentro de um conector. Como detalhe, é bastante comum usar um USB ao invés de um DIN de 5 pinos, no caso de usar um USB devemos criar uma interface USB-MIDI.

Sem mais delongas, deixo você com o link onde você pode encontrar o tutorial passo a passo com muito imagens descritivas onde podemos realizar todas as ações necessárias para criar nosso próprio controlador MIDI.

Artigo relacionado:
Como alterar o nome de usuário e a senha do Pi em nosso Raspberry Pi

Como fazer seu próprio controlador MIDI com Arduino

conector midi

Muitas são as pessoas que precisam, por diferentes motivos pessoais e profissionais, usar um Controlador MIDI totalmente personalizado Porque talvez e por exemplo, em algum momento de sua vida como artista, comprar um controlador MIDI barato pode não atender às suas expectativas ou necessidades, enquanto, quando chegar a hora, optar por uma versão profissional pode ser excessivo em ambos os recursos financeiros. necessidade, bem como o grande número de recursos que podem oferecer.

Por isso, hoje quero mostrar tudo o que você precisa para que você possa fazer seu próprio controlador MIDI indicando tudo o que você precisa para sua construção e lhe oferecer o software que você precisa instalar. Como detalhe, para este projeto é imprescindível o uso de uma placa Arduino, um controlador que seja poderoso o suficiente para realizar esta tarefa.

Como fazer um robô
Artigo relacionado:
Como fazer um robô: 3 opções diferentes

O que é um controlador MIDI?

midi

Basicamente, um controlador MIDI é responsável, em termos gerais, por conectar diferentes dispositivos musicais uns aos outros. Muitos são os instrumentos que incorporam uma interface MIDI, embora isso deva ficar bem claro, visto que muitos usuários se confundem frequentemente, MIDI não é um arquivo de áudio, mas um conjunto muito simples de instruções que um instrumento pode receber para fazer diferentes controles ou definições de som.

MIDI interno existem dois tipos diferentesPor outro lado, temos o chamado Change Control onde tem o número do controlador e um valor entre 0 e 127. Graças a isso, podem ser emitidas mensagens onde diferentes parâmetros como volume ou tom podem ser alterados. Diferentes instrumentos que aceitam MIDI devem trazer um manual explicando quais canais e mensagens são configurados por padrão e como alterá-los.

Em segundo lugar, temos o Program Change, uma série de mensagens que por sua vez são muito mais simples do que as que compõem o Change Control. Esses tipos de mensagens são usados ​​para alterar a predefinição ou patch de um dispositivo. Como no Controle de Mudanças, junto com seu instrumento, o fabricante deve incluir um manual indicando quais predefinições são alteradas por uma mensagem específica.

Peças necessárias para construir seu próprio controlador MIDI caseiro

Esquemático do conector Midi

Para ser capaz de construir seu próprio controlador MIDI, você precisará de uma série de peças além, como já mencionamos, de uma placa Arduino. Antes de continuar, é só dizer que talvez, no futuro, porque você queira expandir o projeto, você precise de mais coisas, embora neste momento com algumas peças você tenha o bastante.

Precisaremos de um cabo DIN fêmea de 5 polos, 2 resistores de 220 ohm, 2 interruptores momentâneos, 2 resistores de 10k ohm, fios de conexão, uma placa de circuito, cabo MIDI e um dispositivo MIDI ou interface USB. Com apenas essas peças você pode começar, seguindo meus passos, a fazer seu próprio controlador MIDI.

Primeiros Passos

Esquema Arduino midi

Antes de começar deixo uma imagem onde vocês podem ver os pinos do seu cabo MIDI, desta forma podemos identificar corretamente os pinos e principalmente onde cada um deve ser conectado. Em termos gerais, tudo que você precisa fazer neste ponto é conectar o pino 5 do cabo a um resistor de 220 ohm e daí ao Arduino Transmit 1, o pino 4 a um resistor de 220 ohm e daí ao soquete 5V do Arduino enquanto pino 2 deve ser conectado à conexão de aterramento de seu controlador.

Uma vez que esta etapa é realizada, você não tem um diagrama detalhado na foto que está localizado logo abaixo dessas linhas, é hora de conectar os botões. A ideia nesta seção é conseguir, usando o pino digitalRead (capaz de detectar quando a tensão que o atinge muda) poder usar um transistor para conseguir, com o apertar de um botão. Para isso só temos que usar um botão para que, do lado esquerdo dele conectemos a 5V, o lado direito a uma resistência de 220 ohm e daí ao aterramento enquanto, por sua vez, conectamos também o lado direito ao pino 6 O segundo botão seria instalado da mesma forma embora, como você pode ver no diagrama, em vez do pino 6 o conectemos ao 7.

Software para usar no controlador midi doméstico

Assim que terminarmos com todo o hardware, é hora de conectar nosso instrumento e testar. Antes disso, precisamos ter um Interface USB-MIDI e um cabo MIDI para conectar a placa, que está enviando dados, com nosso computador. Para isso, optamos pela biblioteca MIDI v4.2 criada pelos caras da Forty Seven Effects que devemos ter instalada em nosso Arduino e incluída no projeto.

No caso do computador, precisaremos de um programa capaz de supervisionar todos os dados MIDI que chegam do Arduino. Para isso temos diferentes possibilidades como MIDI Monitor (OS X), MIDI-OX (Windows) ou Kmidimon (Linux)

Para fazer um pequeno teste, basta conectar o Arduino ao nosso computador 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 tudo tiver corrido bem, pode passar para o teste do botão, caso este teste não tenha funcionado para você deve certificar-se de que todas as ligações estão corretas, o circuito é exatamente igual ao diagrama anterior, o circuito está conectado a uma interface USB-MIDI com um cabo MIDI, os cabos da porta MIDI estão conectados corretamente, o cabo MIDI está conectado à entrada da interface USB-MIDI, a placa Arduino está conectada corretamente à rede elétrica e tem energia suficiente ...

Testando se os botões funcionam corretamente

Antes de continuar a alimentar nosso programa com novas funcionalidades e códigos nos quais podemos nos perder, vale a pena parar por um momento e testar se os botões funcionam corretamente. Para eles, temos que carregar 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);
}
}

}

Basta que este código seja compilado e executado para que, com o cabo USB conectado, o programa nos diga se algum dos botões foi pressionado.

Nós criamos nosso controlador MIDI caseiro

Depois de executar esses testes, é hora de montar nosso próprio controlador MIDI para isso, você 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 detalhe, diga que você não pode usar o comando Serial.println () com uma saída MIDI desta vez, se quiser mostrar algum tipo de mensagem no computador, basta alterar:

midiOut.sendControlChange(42,127,1);

por:

midiOut.sendControlChange(value, channel);

onde valor e canal devem ter os valores desejados que você deseja exibir.

Exemplo de operação:


4 comentários, deixe o seu

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Alfred dito

    O Arduino oferece muitas possibilidades para realizar projetos por conta própria https://www.juguetronica.com/arduino . Uma das melhores coisas é que você pode começar sem ser um especialista e continuar aprendendo, motivando-se a ser autodidata.

  2.   Danel Roman dito

    Saudações.

    Estou tentando realizar este tutorial fantástico… mas os #includes não estão completos….

    Você poderia me dizer quais são necessárias?

    Muito obrigado.

  3.   uel dito

    Olá.
    Eu gostaria de fazer um módulo de bateria eletrônica, substituindo os botões por entradas jack para o qual um sinal piezoelétrico chegará.
    Seria possível fazer isso?

  4.   Eduardo valenzuela dito

    Por favor, se você puder fornecer os includes deste código, estou interessado neste projeto.