Naredite svoj MIDI krmilnik z Arduino

MIDI

Če ste ljubitelj glasbe ali neposredno ljubiteljski ali profesionalni glasbenik, ste zagotovo v svojem domu nabrali veliko zbirko glasbil. Če želite, da se vse te kombinacije popolnoma uredijo, je najbolje dobiti a MIDI krmilnik. Na žalost so te vrste predmetov običajno precej drage, zato človek brez preveč virov težko dostopa do vsega, kar lahko ponudi.

Če želite veliko bolje razumeti, kaj je MIDI krmilnik, vam povemo, da izvira beseda MIDI Digitalni vmesnik glasbila, to je nekakšen krmilnik, ki elektronskim glasbenim napravam omogoča medsebojno komunikacijo. Če imate na primer doma elektronsko tipkovnico, je več kot verjetno, da ima vmesnik MIDI. Kljub dejstvu, da obstajajo nekatere tehnične podrobnosti, zaradi katerih lahko človek verjame drugače, mora biti še naprej jasno, da MIDI ni zvok.

Ustvarite svoj MIDI krmilnik s to preprosto vadnico

Ko bomo to jasno razumeli, boste zagotovo veliko lažje razumeli, da je MIDI preprosto komplet navodil, ki lahko podpira do 16 neodvisnih kanalov, kar pomeni, da lahko obstaja do 16 različnih naprav, ki med seboj neodvisno komunicirajo. Te naprave je treba povezati s 5-polnim DIN kablom, ki je v bistvu kabel s petimi nožicami znotraj konektorja. Kot podrobnost je precej običajno, da namesto 5-pinskega DIN uporabimo USB, v primeru uporabe USB pa moramo ustvariti vmesnik USB-MIDI.

Brez odlašanja vam puščam povezavo, kjer lahko najdete Navodila korak za korakom z veliko opisne slike kjer lahko izvedemo vsa potrebna dejanja za ustvarjanje lastnega MIDI krmilnika.

Povezani članek:
Kako spremeniti uporabniško ime in geslo za Pi na naši Raspberry Pi

Kako narediti svoj lastni MIDI krmilnik z Arduino

midi konektor

Številni so ljudje, ki iz različnih razlogov, tako osebnih kot poklicnih, uporabljajo a popolnoma MIDI krmilnik po meri Ker morda in kot primer v nekem trenutku svojega življenja kot umetnik nakup poceni krmilnika MIDI morda ne bo izpolnil vaših pričakovanj ali potreb, medtem ko bo, ko bo čas, odločitev za profesionalno različico v obeh finančnih virih pretirana. veliko število funkcij, ki jih lahko ponudijo.

Zaradi tega vam danes želim pokazati vse, kar potrebujete, da lahko izdelate svoj MIDI krmilnik, pri čemer navedete vse, kar potrebujete za njegovo izdelavo, in vam ponudim programsko opremo, ki jo boste morali namestiti. Kot podrobnost je za ta projekt nujna uporaba plošče Arduino, krmilnika, ki je dovolj močan za izvajanje te naloge.

Kako narediti robota
Povezani članek:
Kako narediti robota: 3 različne možnosti

Kaj je MIDI krmilnik?

midi

V bistvu je krmilnik MIDI na splošno odgovoren za medsebojno povezovanje različnih glasbenih naprav. Številni instrumenti vključujejo vmesnik MIDI, čeprav mora biti to zelo jasno, saj je veliko uporabnikov, ki so pogosto zmedeni, MIDI ni zvočna datoteka, ampak zelo preprost nabor navodil, ki jih instrument lahko prejme. ali nastavitve zvoka.

Znotraj MIDI obstajata dve različni vrstiPo eni strani imamo tisto, imenovano Change Control, kjer ima številko krmilnika in vrednost med 0 in 127. Zahvaljujoč temu lahko izdajamo sporočila, kjer lahko spremenimo različne parametre, kot sta glasnost ali ton. Različni instrumenti, ki sprejemajo MIDI, bi morali imeti s seboj priročnik, v katerem je razloženo, kateri kanali in sporočila so privzeto nastavljeni in kako jih spremeniti.

Na drugem mestu imamo Program Change, vrsto sporočil, ki pa so veliko enostavnejša od tistih, ki tvorijo Control Change. Te vrste sporočil se uporabljajo za spreminjanje prednastavitve ali popravka naprave. Tako kot pri nadzoru sprememb mora proizvajalec skupaj z vašim instrumentom vključiti tudi priročnik, ki prikazuje, katere prednastavitve se spremenijo v določenem sporočilu.

Deli, potrebni za izdelavo lastnega domačega MIDI krmilnika

Shema priključka Midi

Če želite zgraditi svoj lastni MIDI krmilnik, potrebujete vrsto kosov poleg, kot smo že omenili, plošče Arduino. Preden nadaljujete, samo povejte, da boste morda v prihodnosti, ker želite razširiti projekt, potrebovali več stvari, čeprav boste v tem trenutku z nekaj kosi imeli dovolj.

Potrebovali bomo 5-polni ženski DIN kabel, 2 220 ohmska upora, 2 trenutna stikala, 2 10 k ohmska upora, priključne žice, vezje, MIDI kabel in MIDI napravo ali USB vmesnik. Samo s temi deli lahko po mojih korakih začnete izdelovati svoj MIDI krmilnik.

Prvi koraki

Shema midi Arduino

Preden začnem, vam pustim sliko, na kateri lahko vidite nožice vašega MIDI kabla, na ta način lahko pravilno prepoznamo nožice in še posebej, kje jih je treba povezati. Na splošno je na tej točki vse, kar morate storiti, povezati pin 5 kabla na 220 ohmski upor in od tam na Arduino Transmit 1, pin 4 na 220 ohmski upor in od tam na 5V vtičnico Arduino, medtem ko pin 2 mora biti priključena na ozemljitveno povezavo vašega krmilnika.

Ko končate ta korak, na fotografiji, ki se nahaja tik pod temi črtami, nimate podrobnega diagrama, čas je, da povežete gumbe. Zamisel v tem poglavju je doseči, da lahko s pritiskom na gumb s pomočjo zatiča digitalRead (ki lahko zazna, kdaj se napetost, ki jo doseže) spremeni tranzistor. Za to moramo uporabiti samo gumb, tako da ga na levi strani priključimo na 5 V, desno na odpornost 220 ohmov in od tam na tla, medtem ko desno stran priključimo tudi na zatič 6 Drugi gumb bi bil nameščen na enak način, čeprav ga, kot lahko vidite na diagramu, namesto zatiča 6 priključimo na 7.

Programska oprema za domači midi krmilnik

Ko končamo z vso strojno opremo, je čas, da priključimo instrument in preizkusimo. Pred tem moramo imeti a USB-MIDI vmesnik in MIDI kabel za povezavo plošče, ki pošilja podatke, z našim računalnikom. Da bi to dosegli, smo se odločili za knjižnico MIDI v4.2, ki so jo ustvarili fantje iz Forty Seven Effects in jo moramo namestiti na naš Arduino in vključiti v projekt.

V primeru računalnika bomo potrebovali program, ki je sposoben nadzirati vse podatke MIDI, ki do njega prihajajo iz Arduina. Za to imamo različne možnosti, kot so MIDI Monitor (OS X), MIDI-OX (Windows) ali Kmidimon (Linux)

Če želite narediti majhen test, moramo le povezati Arduino z računalnikom in izvesti naslednjo kodo:

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

Če je šlo vse v redu, lahko greste na preizkus gumba, če vam ta test ni uspel, se prepričajte, da so vse povezave pravilne, vezje je popolnoma enako kot prejšnji diagram, vezje je povezan z vmesnikom USB-MIDI s kablom MIDI, kabli vrat MIDI so pravilno povezani, kabel MIDI je priključen na vhod vmesnika USB-MIDI, plošča Arduino je pravilno priključena na električno omrežje in ima dovolj moči ...

Preverjanje pravilnosti gumbov

Preden še naprej hranite naš program z novimi funkcionalnostmi in kodo, v kateri se lahko izgubimo, se je vredno za trenutek ustaviti in preverite, ali gumbi delujejo pravilno. Zanje moramo naložiti naslednjo kodo:

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

}

To kodo je treba preprosto sestaviti in izvesti, tako da nam s priključenim kablom USB program sporoči, ali je bil pritisnjen kateri koli gumb.

Ustvarimo naš domači MIDI krmilnik

Ko smo izvedli te teste, je čas, da sestavimo svoj lastni MIDI krmilnik, za to boste morali sestaviti le naslednjo kodo:

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

Kot podrobnost vam povemo, da tokrat ne morete uporabiti ukaza Serial.println () z izhodom MIDI, če želite v računalniku prikazati neko vrsto sporočila, samo spremenite:

midiOut.sendControlChange(42,127,1);

por:

midiOut.sendControlChange(value, channel);

kjer morata vrednost in kanal imeti želene vrednosti, ki jih želite prikazati.

Primer delovanja:


4 komentarja, pustite svojega

Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   Alfred je dejal

    Arduino vam ponuja veliko možnosti za samostojno izvajanje projektov https://www.juguetronica.com/arduino . Ena najboljših stvari je, da lahko začnete, ne da bi bili strokovnjak, in se nadaljujete z učenjem ter se tako motivirate za samouk.

  2.   Danel Roman je dejal

    Lep pozdrav.

    Poskušam narediti to fantastično vadnico ... vendar #includes ni popoln….

    Bi mi lahko povedali, kateri so potrebni?

    Hvala lepa.

  3.   uell je dejal

    Hej.
    Želel bi narediti elektronski modul bobna, tako da gumbe nadomestim z vhodnimi priključki, na katere bo prispel piezoelektrični signal.
    Bi bilo to mogoče storiti?

  4.   Eduardo Valenzuela je dejal

    Prosim, če bi lahko navedli vključitve te kode, zanima me ta projekt.