Crea il tuo controller MIDI con Arduino

POMERIGGIO

Se sei un amante della musica o direttamente un musicista dilettante o professionista, sicuramente nella tua casa hai accumulato una vasta collezione di strumenti musicali. Per fare in modo che tutti questi si mescolino perfettamente, è meglio ottenere un file Controller MIDI. Sfortunatamente, questi tipi di oggetti sono solitamente piuttosto costosi, quindi è difficile per una persona senza troppe risorse accedere a tutto ciò che può offrire.

Per capire molto meglio cos'è un controller MIDI, diteci che la parola MIDI proviene Interfaccia digitale per strumenti musicali, cioè una sorta di controller che fa in modo che i dispositivi musicali elettronici possano comunicare tra loro. Se hai una tastiera elettronica a casa, ad esempio, è molto probabile che abbia un'interfaccia MIDI. Prima di continuare ad avanzare, nonostante ci siano alcuni dettagli tecnici che possono indurre a credere il contrario, deve essere molto chiaro che Il MIDI non è audio.

Crea il tuo controller MIDI con questo semplice tutorial

Una volta che siamo chiari su questo, sarà sicuramente molto più facile per te capire che il MIDI è solo un semplice set di istruzioni in grado di supportare fino a 16 canali indipendenti, il che significa che possono esserci fino a 16 dispositivi diversi che comunicano in modo indipendente tra loro. Questi dispositivi devono essere collegati tramite un cavo DIN a 5 pin, che è fondamentalmente un cavo con cinque pin all'interno di un connettore. Come dettaglio, è abbastanza comune utilizzare una USB invece di un DIN a 5 pin, in caso di utilizzo di una USB dobbiamo creare un'interfaccia USB-MIDI.

Senza ulteriori indugi, vi lascio con il link dove potete trovare il file lezione passo dopo passo con un sacco di immagini descrittive dove possiamo eseguire tutte le azioni necessarie per creare il nostro controller MIDI.

Articolo correlato:
Come modificare il nome utente e la password Pi sul nostro Raspberry Pi

Come creare il tuo controller MIDI con Arduino

connettore midi

Molte sono le persone che hanno bisogno, per diversi motivi sia personali che professionali, di utilizzare un file controller MIDI completamente personalizzato Perché forse e ad esempio, ad un certo punto della tua vita di artista, l'acquisto di un controller MIDI economico potrebbe non soddisfare le tue aspettative o esigenze mentre, quando sarà il momento, optare per una versione professionale potrebbe essere eccessivo in entrambe le risorse finanziarie. bisogno, così come il gran numero di funzionalità che possono offrire.

Per questo oggi voglio mostrarvi tutto ciò di cui avete bisogno affinché possiate realizzare il vostro controller MIDI, indicando sia tutto ciò di cui avete bisogno per la sua costruzione sia proponendovi il software che dovrete installare. In dettaglio, per questo progetto è fondamentale l'utilizzo di una scheda Arduino, un controller sufficientemente potente per svolgere questo compito.

Come costruire un robot
Articolo correlato:
Come realizzare un robot: 3 diverse opzioni

Cos'è un controller MIDI?

midi

Fondamentalmente, un controller MIDI è responsabile, in generale, del collegamento tra loro di diversi dispositivi musicali. Molti sono gli strumenti che incorporano un'interfaccia MIDI, anche se questo deve essere molto chiaro poiché ci sono molti utenti che sono spesso confusi, il MIDI non è un file audio, ma un insieme molto semplice di istruzioni che uno strumento può ricevere.per fare un controllo diverso o impostazioni audio.

All'interno del MIDI ci sono due diversi tipiDa un lato abbiamo quello chiamato Change Control dove ha il numero del controller e un valore compreso tra 0 e 127. Grazie a questo, possono essere emessi messaggi in cui è possibile modificare diversi parametri come il volume o il tono. Diversi strumenti che accettano il MIDI dovrebbero portare con sé un manuale che spieghi quali canali e messaggi sono impostati di default e come cambiarli.

Al secondo posto abbiamo il Program Change, una serie di messaggi che a loro volta sono molto più semplici di quelli che compongono il Change Control. Questi tipi di messaggi vengono utilizzati per modificare il preset o il patch di un dispositivo. Come in Change Control, insieme allo strumento il produttore deve includere un manuale che indichi quali preset vengono modificati da un particolare messaggio.

Parti necessarie per costruire il tuo controller MIDI fatto in casa

Schema del connettore Midi

Per poter costruire il tuo controller MIDI avrai bisogno di una serie di pezzi oltre a, come abbiamo già accennato, una scheda Arduino. Prima di continuare, ti dico solo che forse, in futuro perché vuoi espandere il progetto, hai bisogno di più cose, anche se in questo momento con pochi pezzi ne avrai in abbondanza.

Avremo bisogno di un cavo DIN femmina a 5 poli, 2 resistenze da 220 ohm, 2 interruttori momentanei, 2 resistori da 10k ohm, cavi di collegamento, un circuito stampato, cavo MIDI e un dispositivo MIDI o interfaccia USB. Con solo questi pezzi puoi iniziare, seguendo i miei passi, a creare il tuo controller MIDI.

Primi passi

Schema midi di Arduino

Prima di iniziare ti lascio una foto in cui puoi vedere i pin del tuo cavo MIDI, in questo modo possiamo identificare correttamente i pin e soprattutto dove ognuno deve essere collegato. In linea di massima, tutto ciò che devi fare a questo punto è collegare il pin 5 del cavo a una resistenza da 220 ohm e da lì ad Arduino Transmit 1, il pin 4 a una resistenza da 220 ohm e da lì alla presa 5V di Arduino mentre il pin 2 deve essere collegato al collegamento a terra del controller.

Una volta fatto questo passaggio, non hai uno schema dettagliato nella foto che si trova appena sotto queste linee, è il momento di collegare i pulsanti. L'idea in questa sezione è quella di ottenere, utilizzando il pin digitalRead (in grado di rilevare quando cambia la tensione che lo raggiunge), di poter utilizzare un transistor per ottenere, con la semplice pressione di un pulsante. Per questo dobbiamo solo usare un pulsante in modo che, il lato sinistro di esso lo colleghiamo a 5V, il lato destro ad una resistenza da 220 ohm e da lì a massa mentre, a nostra volta, colleghiamo anche il lato destro al pin 6 Il secondo pulsante verrebbe installato allo stesso modo anche se, come puoi vedere nello schema, al posto del pin 6 lo colleghiamo al 7.

Software da utilizzare per il controller midi di casa

Una volta che abbiamo finito con tutto l'hardware, è il momento di collegare il nostro strumento e testare. Prima di ciò dobbiamo avere un file Interfaccia USB-MIDI e un cavo MIDI per collegare la scheda, che sta inviando i dati, con il nostro computer. Per ottenere ciò, abbiamo optato per la libreria MIDI v4.2 creata dai ragazzi di Forty Seven Effects che dobbiamo aver installato sul nostro Arduino e inclusa nel progetto.

Nel caso del computer, avremo bisogno di un programma in grado di supervisionare tutti i dati MIDI che gli arrivano da Arduino. Per questo abbiamo diverse possibilità come MIDI Monitor (OS X), MIDI-OX (Windows) o Kmidimon (Linux)

Per fare un piccolo test non ci resta che collegare l'Arduino al nostro computer ed eseguire il seguente codice:

#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 tutto è andato bene, puoi andare al test dei pulsanti, nel caso in cui questo test non abbia funzionato per te devi assicurarti che tutti i collegamenti siano corretti, il circuito è esattamente lo stesso dello schema precedente, il circuito è collegato a un'interfaccia USB-MIDI con un cavo MIDI, i cavi della porta MIDI sono collegati correttamente, il cavo MIDI è collegato all'ingresso dell'interfaccia USB-MIDI, la scheda Arduino è correttamente collegata alla rete elettrica e ha abbastanza potenza ...

Verifica che i pulsanti funzionino correttamente

Prima di continuare ad alimentare il nostro programma con nuove funzionalità e codice in cui perdersi, vale la pena fermarsi un attimo e verifica che i pulsanti funzionino correttamente. Per loro dobbiamo caricare il seguente codice:

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);
}
}

}

Questo codice deve solo essere compilato ed eseguito in modo che, con il cavo USB collegato, il programma ci informi se è stato premuto uno dei pulsanti.

Creiamo il nostro controller MIDI fatto in casa

Una volta che abbiamo eseguito questi test, è il momento di assemblare il nostro controller MIDI per questo, dovrai solo compilare il seguente codice:

#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);
}
}
}

Come dettaglio, ti dico che questa volta non puoi usare il comando Serial.println () con un'uscita MIDI, se vuoi mostrare qualche tipo di messaggio sul computer, cambia semplicemente:

midiOut.sendControlChange(42,127,1);

da:

midiOut.sendControlChange(value, channel);

dove valore e canale devono avere i valori desiderati che si desidera visualizzare.

Esempio di operazione:


4 commenti, lascia il tuo

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   Alfred suddetto

    Arduino ti offre molte possibilità per intraprendere progetti da solo https://www.juguetronica.com/arduino . Una delle cose migliori è che puoi iniziare senza essere un esperto e continuare ad imparare, motivandoti così ad essere un autodidatta.

  2.   Danel Roman suddetto

    Saluti.

    Sto provando a realizzare questo fantastico tutorial… ma gli #include non sono completi….

    Potresti dirmi quali sono necessari?

    Grazie mille.

  3.   uell suddetto

    Hey.
    Vorrei realizzare un modulo per batteria elettronica sostituendo i pulsanti con ingressi jack a cui arriverà un segnale piezoelettrico.
    Sarebbe possibile farlo?

  4.   Eduardo Valenzuela suddetto

    Per favore, se potessi fornire gli include di questo codice, sono interessato a questo progetto.