Creați-vă propriul controler MIDI cu Arduino

MIDI

Dacă sunteți un iubitor de muzică sau direct un muzician amator sau profesionist, cu siguranță în casa dvs. ați acumulat o mare colecție de instrumente muzicale. Pentru ca toate acestea să se amestece perfect, cel mai bine este să obțineți un Controler MIDI. Din păcate, aceste tipuri de obiecte sunt de obicei destul de scumpe, astfel încât o persoană fără prea multe resurse are acces dificil la tot ceea ce poate oferi.

Pentru a înțelege mult mai bine ce este un controler MIDI, spuneți-vă că vine cuvântul MIDI Interfață digitală pentru instrumente muzicale, adică un fel de controler care face ca dispozitivele muzicale electronice să poată comunica între ele. Dacă aveți acasă o tastatură electronică, de exemplu, este mai mult decât probabil să aibă o interfață MIDI. Înainte de a continua să avanseze, în ciuda faptului că există anumite detalii tehnice care pot duce la credința contrară, trebuie să fie clar că MIDI nu este audio.

Creați-vă propriul controler MIDI cu acest tutorial simplu

Odată ce vom fi clari despre acest lucru, vă va fi cu siguranță mult mai ușor să înțelegeți că MIDI este doar un simplu set de instrucțiuni capabil să suporte până la 16 canale independente, ceea ce înseamnă că pot exista până la 16 dispozitive diferite care comunică independent între ele. Aceste dispozitive trebuie conectate printr-un cablu DIN cu 5 pini, care este practic un cablu cu cinci pini în interiorul unui conector. Ca detaliu, este destul de obișnuit să folosiți un USB în loc de un DIN cu 5 pini, în cazul utilizării unui USB trebuie să creăm o interfață USB-MIDI.

Fără alte întrebări, vă las linkul unde puteți găsi tutorial pas cu pas cu o mulțime de imagini descriptive unde putem efectua toate acțiunile necesare pentru a ne crea propriul controler MIDI.

Articol asociat:
Cum se schimbă numele de utilizator și parola Pi de pe Raspberry Pi

Cum să vă creați propriul controler MIDI cu Arduino

conector midi

Mulți sunt oamenii care au nevoie, din diferite motive atât personale, cât și profesionale, să folosească un controler MIDI complet personalizat Pentru că poate și ca exemplu, la un moment dat în viața ta de artist, achiziționarea unui controler MIDI ieftin poate să nu-ți îndeplinească așteptările sau nevoile, în timp ce, când va veni momentul, optarea pentru o versiune profesională poate fi excesivă atât în ​​resursele financiare. nevoie, precum și numărul mare de caracteristici pe care le pot oferi.

Datorită acestui fapt, astăzi vreau să vă arăt tot ce aveți nevoie, astfel încât să vă puteți crea propriul controler MIDI, indicând atât tot ceea ce este necesar pentru construcția acestuia, cât și oferindu-vă software-ul pe care va trebui să îl instalați. Ca detaliu, pentru acest proiect este esențială utilizarea unei plăci Arduino, un controler suficient de puternic pentru a îndeplini această sarcină.

Articol asociat:
Cum să faci un robot: 3 opțiuni diferite

Ce este un controler MIDI?

midi

Practic, un controler MIDI este responsabil, în linii mari, pentru conectarea diferitelor dispozitive muzicale între ele. Multe sunt instrumentele care încorporează o interfață MIDI, deși acest lucru trebuie să fie foarte clar, deoarece există mulți utilizatori care sunt adesea confuzi, MIDI nu este un fișier audio, ci un set foarte simplu de instrucțiuni pe care un instrument le poate primi pentru a face un control diferit sau setări de sunet.

În interiorul MIDI există două tipuri diferitePe de o parte, îl avem pe cel numit Control control, unde are numărul controlerului și o valoare cuprinsă între 0 și 127. Datorită acestui fapt, pot fi emise mesaje în care pot fi modificați diferiți parametri, cum ar fi volumul sau tonul. Diferite instrumente care acceptă MIDI ar trebui să aducă un manual care să explice ce canale și mesaje sunt setate în mod implicit și cum să le schimbați.

Pe locul al doilea avem Program Change, o serie de mesaje care la rândul lor sunt mult mai simple decât cele care alcătuiesc Controlul schimbărilor. Aceste tipuri de mesaje sunt utilizate pentru a schimba presetarea sau patch-ul unui dispozitiv. La fel ca în Controlul schimbărilor, împreună cu instrumentul dumneavoastră, producătorul trebuie să includă un manual care să indice ce presetări sunt modificate printr-un anumit mesaj.

Piese necesare pentru a vă construi propriul controler MIDI de casă

Schema conectorului Midi

Pentru a vă putea construi propriul controler MIDI, veți avea nevoie de o serie de piese în plus, așa cum am menționat deja, la o placă Arduino. Înainte de a continua, spuneți-vă că poate, în viitor, pentru că doriți să extindeți proiectul, aveți nevoie de mai multe lucruri, deși, în acest moment, cu câteva piese veți avea destule.

Vom avea nevoie de un cablu DIN feminin cu 5 poli, 2 rezistențe de 220 ohmi, 2 comutatoare momentane, 2 rezistențe de 10 k ohmi, fire de conectare, o placă de circuit, cablu MIDI și un dispozitiv MIDI sau interfață USB. Cu doar aceste piese puteți începe, urmând pașii mei, să vă creați propriul controler MIDI.

Primii pași

Schema Arduino midi

Înainte de a începe, vă las o imagine în care puteți vedea pinii cablului MIDI, în acest fel putem identifica corect pinii și mai ales unde să le conectați pe fiecare. În linii mari, tot ce trebuie să faceți în acest moment este să conectați pinul 5 al cablului la un rezistor de 220 ohmi și de acolo la Arduino Transmit 1, pinul 4 la un rezistor de 220 ohmi și de acolo la mufa 5V a Arduino în timp ce pinul 2 trebuie conectat la conexiunea la masă a controlerului.

Odată ce acest pas este făcut, nu aveți o diagramă detaliată în fotografie care este situată chiar sub aceste linii, este timpul să conectați butoanele. Ideea din această secțiune este de a realiza, folosind pinul DigitalRead (capabil să detecteze când se modifică tensiunea care îl atinge) pentru a putea utiliza un tranzistor pentru a realiza, cu o apăsare de buton. Pentru aceasta trebuie să folosim doar un buton astfel încât, în partea stângă a acestuia, să îl conectăm la 5V, partea dreaptă la o rezistență de 220 ohmi și de acolo la sol, în timp ce, la rândul nostru, conectăm și partea dreaptă la pin 6. Al doilea buton ar fi instalat în același mod, deși, după cum puteți vedea în diagramă, în loc de pinul 6 îl conectăm la 7.

Software de utilizat pentru controler midi acasă

Odată ce am terminat cu tot hardware-ul, este timpul să ne conectăm instrumentul și să testăm. Înainte de asta trebuie să avem un Interfață USB-MIDI și un cablu MIDI pentru a conecta placa, care trimite date, la computerul nostru. Pentru a realiza acest lucru, am optat pentru biblioteca MIDI v4.2 creată de tipii de la Forty Seven Effects pe care trebuie să o avem instalată pe Arduino și inclusă în proiect.

În cazul computerului, vom avea nevoie de un program care să poată supraveghea toate datele MIDI care ajung la el de la Arduino. Pentru aceasta avem diferite posibilități precum MIDI Monitor (OS X), MIDI-OX (Windows) sau Kmidimon (Linux)

Pentru a face un mic test, trebuie doar să conectăm Arduino la computerul nostru și să executăm următorul cod:

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

Dacă totul a mers bine, puteți merge la testul butonului, în cazul în care acest test nu a funcționat pentru dvs., trebuie să vă asigurați că toate conexiunile sunt corecte, circuitul este exact același cu diagrama anterioară, circuitul este conectat la o interfață USB-MIDI cu un cablu MIDI, cablurile portului MIDI sunt conectate corect, cablul MIDI este conectat la intrarea interfeței USB-MIDI, placa Arduino este conectată corect la rețeaua electrică și are suficientă putere ...

Testarea funcționării corectă a butoanelor

Înainte de a continua să alimentăm programul nostru cu noi funcționalități și coduri în care ne putem pierde, merită să ne oprim o clipă și verificați dacă butoanele funcționează corect. Pentru ei trebuie să încărcăm următorul cod:

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

}

Acest cod trebuie doar compilat și executat astfel încât, cu cablul USB conectat, programul să ne spună dacă a fost apăsat vreunul dintre butoane.

Ne creăm controlerul MIDI de casă

Odată ce am executat aceste teste, este timpul să ne asamblăm propriul controler MIDI pentru asta, va trebui doar să compilați următorul cod:

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

Ca detaliu, vă spun că nu puteți utiliza comanda Serial.println () cu o ieșire MIDI de data aceasta, dacă doriți să afișați un tip de mesaj pe computer, schimbați doar:

midiOut.sendControlChange(42,127,1);

prin:

midiOut.sendControlChange(value, channel);

unde valoarea și canalul trebuie să aibă valorile dorite pe care doriți să le afișați.

Exemplu de operare:


Conținutul articolului respectă principiile noastre de etică editorială. Pentru a raporta o eroare, faceți clic pe aici.

4 comentarii, lasă-le pe ale tale

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Alfred el a spus

    Arduino vă oferă multe posibilități de a întreprinde proiecte pe cont propriu https://www.juguetronica.com/arduino . Unul dintre cele mai bune lucruri este că poți începe fără să fii expert și să continui să înveți, motivându-te astfel să fii autodidact.

  2.   Danel Roman el a spus

    Salutări.

    Încerc să realizez acest tutorial fantastic ... dar # include nu sunt complete ....

    Ai putea să-mi spui care sunt necesare?

    Mulţumesc mult.

  3.   Uell el a spus

    Buna ziua.
    Aș dori să fac un modul electronic de tambur prin înlocuirea butoanelor cu intrări jack către care va ajunge un semnal piezoelectric.
    Ar fi posibil să o faci?

  4.   Eduardo Valenzuela el a spus

    Vă rog, dacă ați putea include includerea acestui cod, sunt interesat de acest proiect.